คำถามติดแท็ก scripts

สคริปต์คือชุดคำสั่งที่เขียนในไฟล์ "ข้อความธรรมดา" ตัวแปลสคริปต์ (ตัวอย่างเช่น Bash หรือ shell อื่น, Python, Perl, Ruby, ฯลฯ ) อ่านไฟล์และดำเนินการตามคำแนะนำราวกับว่าพวกมันถูกป้อนที่ command prompt

2
อ๊ะเพื่อให้ผู้ใช้ทั่วไปทั้งหมดอยู่ในเงามืด
ฉันมีสคริปต์ ฉันต้องการที่จะได้รับผู้ใช้ปกติทั้งหมดของฉันจาก/etc/shadowเช่นผู้ใช้ทุกคนซึ่งในระยะที่สองในแฟ้มเงาเริ่มต้นด้วยหรือ$!$ รูปแบบของฉันคือ sudo getent shadow | awk -F: '$2 ~ /^$/ || /^!$/ {print $1}' มันใช้งานไม่ได้ตอนนี้
8 bash  scripts 


3
เชลล์สคริปต์จะข้าม PPA ถ้าติดตั้ง
ฉันต้องการสร้างสคริปต์ที่จะเพิ่ม PPA ใหม่หรือข้ามหากติดตั้งแล้ว มีคนโพสต์โซลูชันนี้ในคำถามอื่น: #!/bin/bash add_ppa() { for i in "$@"; do grep -h "^deb.*$i" /etc/apt/sources.list.d/* > /dev/null 2>&1 if [ $? -ne 0 ] then echo "Adding ppa:$i" sudo add-apt-repository -y ppa:$i else echo "ppa:$i already exists" fi done } เชลล์สคริปต์เพื่อเพิ่มพื้นที่เก็บข้อมูล apt แบบมีเงื่อนไข ในกรณีของฉันฉันต้องการที่จะเพิ่มppa:otto-kesselgulasch/gimp-edgeแต่ฉันไม่แน่ใจว่าฉันควรที่จะเพิ่มสิ่งนี้ในสคริปต์ ฉันพยายามadd_ppa(ppa:otto-kesselgulasch/gimp-edge)แต่ฉันได้รับข้อผิดพลาดว่า ( ppaเป็นชื่อของสคริปต์ของฉัน): ppa: 1: …
8 bash  scripts  ppa 

1
สคริปต์ไม่ทำงานเมื่อถูกเรียกจากภายนอก
ฉันใช้สคริปต์ง่าย ๆ ในการสร้าง. mp3 จากไฟล์. mp4: #!/bin/bash for i in *.mp4 do ffmpeg -i "$i" -ab 128k "${i%mp4}mp3" done สคริปต์ทำงานได้ดีเมื่อทำงานจากเดสก์ท็อปหรือเรียกผ่านเทอร์มินัล เมื่อสคริปต์ถูกเรียกใช้จากสคริปต์ภายนอกสคริปต์จะไม่สามารถเรียกใช้และส่งคืนได้ "* .mp4: ไม่มีไฟล์หรือไดเรกทอรีดังกล่าว" ฉันสงสัยว่าปัญหานี้เกิดจากการขยายตัวของเชลล์ แต่ไม่สามารถอธิบายวิธีแก้ไขได้ในสถานการณ์นี้
8 bash  scripts 

7
Bash scripting - วิธีเชื่อมสตริงต่อไปนี้?
นี่เป็นส่วนหนึ่งของbashสคริปต์ที่ทำการcpuidค้นพบใน Linux (Ubuntu / Fedora): /usr/bin/cpuid > id.txt CPUID=id.txt echo `grep "extended model" $CPUID` | sed 's/0x//' | awk ' { print $4 } ' > cpu.txt a=`cat cpu.txt` echo `grep "extended family" $CPUID`| sed 's/0x//' | awk ' { print $4 } ' > cpu.txt a+=`cat cpu.txt` ดังนั้นสำหรับแล็ปท็อปของฉันส่วนนี้ของสคริปต์ (แสดงที่นี่) …

3
ฉันสามารถใช้ cron เพื่อตีระฆังที่ด้านบนของชั่วโมงเหมือนนาฬิกาคุณปู่ได้หรือไม่?
ฉันหลงทางใน Askubuntu การอ่านคำถามและการทดสอบกับข้อมูลโค้ดที่แนะนำ ดังนั้นฉันมักจะพลาดการเปลี่ยนช่องข่าวทีวีบนอินเทอร์เน็ตที่ด้านบนของชั่วโมง ไม่ใช่ปัญหาใหญ่สำหรับช่อง YouTube ที่อนุญาตให้เปลี่ยนเวลา แต่เป็น "show stopper" สำหรับช่องทีวีที่ใช้ flash player สามารถcronกำหนดค่าให้ทำงานที่ด้านบนของแต่ละชั่วโมงที่ฉันให้สคริปต์เพื่อฟังเสียงคุณปู่เช่นเสียงนาฬิกาปลุก (มีระดับเสียงที่แน่นอน!) เสียงระฆังเล็กน้อยสามารถฟังที่ด้านล่างของชั่วโมงด้วย ฉันแน่ใจว่าฉันสามารถค้นหาที่เหมาะสม.oggหรือ.ogaไฟล์บนเน็ตและฉันรู้ว่าฉันสามารถใช้ogg123ในการเล่นพวกเขา ฉันแค่ไม่รู้ว่าcronสามารถทำได้หรือไม่ ฉันรู้ว่าฉันสามารถใช้สคริปต์ที่หลับและตื่นขึ้นมาเพื่อทดสอบเวลา แต่ไม่ชอบความคิดที่จะมีบางสิ่งบางอย่างทำงานอยู่ตลอดเวลา หากสามารถทำได้ด้วยcronใครสามารถตอบวิธีการตั้งค่า? ขอบคุณ.
8 sound  scripts  cron 

5
ดำเนินการทุบตีสคริปต์อย่างแท้จริงทุก ๆ 3 วัน
ฉันต้องการรันเชลล์สคริปต์อย่างแท้จริงทุกๆ 3 วัน การใช้ crontab กับ01 00 */3 * *จะไม่ปฏิบัติตามเงื่อนไขจริงเพราะจะทำงานในวันที่ 31 และจากนั้นอีกครั้งในวันที่ 1 ของเดือน */3ไวยากรณ์เป็นเช่นเดียวกับการพูดว่า 1,4,7 ... 25,28,31 ควรมีวิธีในการทำให้สคริปต์ตรวจสอบเงื่อนไขและออกจากโปรแกรมหาก 3 วันยังไม่ผ่าน ดังนั้น crontab จะเรียกใช้สคริปต์ทุกวัน แต่สคริปต์จะตรวจสอบว่าผ่านไป 3 วันหรือไม่ ฉันยังพบรหัสบางส่วน แต่มันทำให้ฉันมีข้อผิดพลาดทางไวยากรณ์ความช่วยเหลือใด ๆ ที่จะได้รับการชื่นชม if (! (date("z") % 3)) { exit; } main.sh: line 1: syntax error near unexpected token `"z"' main.sh: line …

2
ฉันจะแสดงข้อความจากไฟล์โดยอัตโนมัติหลังจากเปิดเครื่องคอมพิวเตอร์ในเท็กซ์เอดิเตอร์หรือเทอร์มินัลได้อย่างไร
ฉันต้องการดูรายการงานของฉันทุกครั้งที่เปิดเครื่องคอมพิวเตอร์เช่นจากไฟล์ในเดสก์ท็อป ฉันจะทำมันได้อย่างไร สามารถแสดงบนเทอร์มินัลหรือเปิดไฟล์อะไรก็ได้
8 bash  scripts 

1
cron ทำให้คอมพิวเตอร์ของฉันตื่นขึ้นหรือไม่
ฉันต้องเริ่มต้นสคริปต์ Python ทุกวันเวลาเที่ยงคืนและหลังจากค้นหาบางอย่างบนอินเทอร์เน็ตฉันพบว่าฉันสามารถใช้ cron เพื่อสิ่งนั้นได้ สิ่งที่ฉันอยากรู้คือว่าถ้าฉันกำหนดเวลางาน cron ในเวลาเที่ยงคืนมันจะปลุกคอมพิวเตอร์ให้ทำงานได้หรือไม่ หรือฉันต้องปลุกคอมพิวเตอร์โดยใช้อย่างอื่นหรือไม่? ฉันใช้ Ubuntu 16.04

2
ฉันจะทำให้ไอคอนเดสก์ท็อปถูกจัดระเบียบและเรียงลำดับตามชื่อได้อย่างไร
ฉันต้องการจัดระเบียบเดสก์ท็อปของฉันตามชื่อเสมอ ฉันจะบรรลุสิ่งนี้ได้อย่างไร เดสก์ท็อปไม่ได้จัดระเบียบตามชื่อ: เดสก์ท็อปหลังจากจัดระเบียบตามชื่อ:

3
Bash Script เพื่อลากและวางไฟล์ไปยังตำแหน่งใหม่
ฉันแน่ใจว่าฉันจะส่งตูดของฉันมาให้ฉันสำหรับคำถามนี้ แต่ฉันก็ดูเหมือนจะไม่สามารถคิดออก ฉันใหม่ในการเขียนสคริปต์ทุบตีดังนั้นไปง่าย ๆ กับฉัน ... ฉันต้องการลากและวางไฟล์ลงในแอปพลิเคชันบนเดสก์ท็อปซึ่งเรียกสคริปต์ทุบตีที่จะย้ายไฟล์นั้นไปยังตำแหน่งที่กำหนดไว้ในสคริปต์ทุบตี นี่คือสิ่งที่มีเพื่อให้ห่างไกล Bash script #! /bin/bash mv $file /path/to/new/directory อย่างไรก็ตามฉันไม่สามารถหาวิธีป้อน$fileตัวแปรเป็นเมื่อฉันลากและวางลงบนแอปพลิเคชันเดสก์ท็อป ฉันจะทำสิ่งนี้ได้อย่างไร เหตุผล: ฉันมีเอกสารที่ฉันต้องอ่านในโฟลเดอร์เดียวและเมื่อฉันอ่านแล้วฉันใส่มันลงในโฟลเดอร์อื่น โดยทั่วไปฉันแค่ต้องการทำให้ง่ายต่อการทำเช่นนี้ ขอบคุณพอล

4
ขอการยืนยันจากผู้ใช้ก่อนดำเนินการสคริปต์หรือไม่?
มีวิธีที่จะได้รับการยืนยันผู้ใช้ (เช่นคุณแน่ใจหรือไม่ / ใช่) กล่องโต้ตอบประเภทเมื่อฉันรันสคริปต์ (โดยดับเบิลคลิก)? ฉันไม่ได้หมายถึงเทอร์มินัล แต่มีกล่องยืนยันแบบกราฟิกบางอย่างเช่นนี้: (ฉันรู้ว่าภาพมาจาก windows ฉันไม่สามารถหา Linux ได้)
8 scripts 

5
Bash - ตรวจสอบไดเรกทอรีของไฟล์จากรายการชื่อไฟล์บางส่วน
ฉันมีเซิร์ฟเวอร์ที่รับไฟล์ต่อไคลเอนต์ในแต่ละวันลงในไดเรกทอรี ชื่อไฟล์ถูกสร้างขึ้นดังนี้: uuid_datestring_other-data ตัวอย่างเช่น: d6f60016-0011-49c4-8fca-e2b3496ad5a7_20160204_023-ERROR uuid เป็นรูปแบบมาตรฐาน uuid datestringdate +%Y%m%dคือผลลัพธ์จาก other-data มีความยาวผันแปรได้ แต่จะไม่มีขีดล่าง ฉันมีไฟล์รูปแบบ: # d6f60016-0011-49c4-8fca-e2b3496ad5a7 client1 d5873483-5b98-4895-ab09-9891d80a13da client2 be0ed6a6-e73a-4f33-b755-47226ff22401 another_client ... ฉันต้องตรวจสอบว่า uuid ทุกรายการในไฟล์มีไฟล์ที่เกี่ยวข้องในไดเรกทอรีโดยใช้ bash ฉันได้มาไกลขนาดนี้ แต่รู้สึกว่าฉันมาจากทิศทางที่ผิดโดยใช้คำสั่ง if และฉันต้องวนซ้ำไฟล์ต่างๆในไดเรกทอรีต้นทาง ตัวแปร source_directory และ uuid_list ได้รับการกำหนดไว้ก่อนหน้าในสคริปต์: # Check the entries in the file list while read -r uuid name; do # …

2
เชลล์สคริปต์เพื่อแบน IP
IP บางรายการกำลังเปิดการเชื่อมต่อหลายพันครั้งในเซิร์ฟเวอร์ของฉัน ฉันมีเซิร์ฟเวอร์ Ubuntu 14 ฉันตรวจสอบการเชื่อมต่อทั้งหมดโดยใช้คำสั่งต่อไปนี้: netstat -an | grep tcp | awk '{พิมพ์ $ 5}' | ตัด -f 1 -d: | จัดเรียง | uniq -c | เรียงลำดับ -n จากนั้นฉันใช้กฎ iptables ต่อไปนี้เพื่อบล็อก IP ผู้ร้าย iptables -I INPUT 1 -s xxxx -j DROP มันทำงานได้ดีและปิดกั้นที่อยู่ IP อย่างไรก็ตามฉันไม่สามารถออนไลน์ตลอด 24/7 เพื่อตรวจสอบเซิร์ฟเวอร์ ฉันสงสัยว่ามีสคริปต์เชลล์ที่ฉันสามารถใช้ทำมันโดยอัตโนมัติหรือไม่? ตัวอย่างเช่นหาก IP …

5
ฉันจะใช้เวลาทั้งหมดเป็นนาทีได้อย่างไร
ระบบของฉันแสดงเวลาเช่นนี้ 10:42 date +%Rป้อนข้อมูลเมื่อฉันสั่ง ฉันต้องใช้เวลาทั้งหมดเป็นนาที นั่นหมายความว่าอย่างนี้ 642 นาที มีคำสั่งหรือเชลล์สคริปต์สำหรับแสดงเวลาทั้งหมดในหน่วยนาทีหรือไม่?

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.