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

สคริปต์คือลำดับของคำสั่งหรือคำสั่งที่ดำเนินการโดยโปรแกรมล่ามแทนที่จะรวบรวมเป็นโปรแกรมปฏิบัติการแบบสแตนด์อโลน

2
กำหนดแป้นพิมพ์ลัดเพื่อเรียกใช้สคริปต์
ฉันเขียนสคริปต์เพื่อเปลี่ยนความสว่างของหน้าจอของฉัน มีประโยชน์เมื่อฉันทำงานกับโหมดข้อความและแป้นพิมพ์ลัดของแป้นพิมพ์เพื่อเปลี่ยนความสว่างไม่ทำงาน มันเป็นไปได้ที่จะเรียกใช้สคริปต์นี้เพียงแค่กดปุ่มบางอย่างบนแป้นพิมพ์เป็นทางลัดเช่นCtrl+ Alt+ F7?

2
อะไรคือ“ วิธีที่ถูกต้อง” ที่จะทำให้เกิดการเปลี่ยนแปลงใน /etc/resolv.conf ด้วย /etc/resolv.conf.d
ฉันสมัยก่อนresolv.confเป็นแบบคงที่และคุณแก้ไขด้วยตัวเอง หลังจากนั้นไคลเอ็นต์ DHCP จะเขียนใหม่โดยใช้รายการคงที่และสิ่งที่ได้รับจากการเช่า DHCP ทุกวันนี้การแจกแจงบางอย่าง - เหมือนของฉัน (Linux Mint 18.1) มี/etc/resolv.conf.dกลไกที่มีไดเรกทอรีย่อยหลายสคริปต์และดีฉันไม่สามารถทำหัวและก้อยได้ แล้วทางที่ถูกต้องคืออะไร ระบุว่าฉันต้องการใช้หรือไม่ใช้เซิร์ฟเวอร์ DNS ที่ได้รับจากการเช่า DHCP การเพิ่มรายการคงที่เพื่อ resolv.conf เสมอหรือเป็นทางเลือกเมื่อไม่มีเนมเซิร์ฟเวอร์ที่ได้รับจาก DHCP? การตัดสินใจเกี่ยวกับลำดับญาติในไฟล์? ฉันไม่รังเกียจที่จะเขียนสคริปต์บางอย่างของตัวเองถ้าฉันมีฉันแค่ไม่ต้องการที่จะ "ทำงานกับ" กลไกที่มีอยู่หรือทำงานซ้ำ

4
การออกจากเชลล์สคริปต์ด้วยลูปซ้อนกัน
ฉันมีเชลล์สคริปต์ที่มีลูปซ้อนกันและเพิ่งพบว่า "exit" ไม่ได้ออกจากสคริปต์จริงๆ แต่เป็นลูปปัจจุบันเท่านั้น มีวิธีการออกจากสคริปต์อย่างสมบูรณ์ในเงื่อนไขข้อผิดพลาดบางอย่างหรือไม่ ฉันไม่ต้องการใช้ "set -e" เนื่องจากมีข้อผิดพลาดที่ยอมรับได้และจะต้องเขียนใหม่มากเกินไป ตอนนี้ฉันกำลังใช้ kill เพื่อฆ่ากระบวนการด้วยตนเอง แต่ดูเหมือนว่าควรมีวิธีที่ดีกว่าในการทำเช่นนี้
11 bash  shell  scripting  exit 

7
จัดเรียงไฟล์ในไดเรกทอรีซ้ำตามวันที่แก้ไขล่าสุด
จัดเรียงไฟล์ในไดเรกทอรีซ้ำตามวันที่แก้ไขล่าสุด ฉันได้แก้ไขไฟล์จำนวนมากในไดเรกทอรีของฉันต้องการทราบว่าไฟล์เหล่านั้นคืออะไรโดยเรียงลำดับตามวันที่แก้ไขล่าสุดและฉันต้องการให้ส่วนขยายบางส่วนถูกแยกออก ในไดเรกทอรี svn ฉันมีไฟล์. svn จำนวนมากเช่นกันซึ่งฉันไม่ต้องการแสดงในการเรียงลำดับ
11 shell  scripting  find  sort 

2
ปัญหาในสคริปต์ด้วยช่องว่างในชื่อไฟล์
ฉันมีสคริปต์ที่ scp เป็นไฟล์จากโฮสต์ระยะไกลกลับสู่ท้องถิ่น บางครั้งชื่อไฟล์มีช่องว่าง scp ไม่ชอบช่องว่างในชื่อไฟล์ ด้วยเหตุผลบางประการความพยายามของฉันในการจัดการช่องว่างไม่ได้ส่งผลให้เส้นทาง scp ที่ถูกต้อง รหัส: PATH=/var/root/Documents/MyFile OG-v1.2.3.pkg scp $PATH Me@10.1.10.33:/Users/Me/Desktop ผลลัพธ์ใน Cannot find directory: var/root/Documents/MyFile Cannot find directory: OG-v1.2.3.pkg การใส่ PATH ในเครื่องหมายคำพูด"$PATH"ทำให้เกิดข้อผิดพลาดเดียวกัน การสลับช่องว่างสำหรับช่องว่างที่หลบหนียังไม่ทำงานแม้ว่าเท่าที่ฉันสามารถบอกได้ก็ควรจะ: ESC_PATH=${PATH/' '/'\ '} แม้ว่าการพิมพ์พา ธ ที่หลบหนีแสดงว่าการแก้ไขทำงานได้: echo $ESC_PATH > /var/root/Documents/MyFile\ OG-v1.2.3.pkg

2
ไปป์สำหรับเอาท์พุตป้องกันการแก้ไขตัวแปรท้องถิ่น
ฉันพยายามเขียนฟังก์ชั่นทุบตีง่ายๆที่ใช้เป็นอาร์กิวเมนต์จำนวนไฟล์และ / หรือไดเรกทอรี มันควรจะ: มีคุณสมบัติชื่อไฟล์อย่างเต็มที่ เรียงพวกเขา ลบรายการซ้ำ พิมพ์ทั้งหมดที่มีอยู่จริง ส่งคืนจำนวนไฟล์ที่ไม่มีอยู่ ฉันมีสคริปต์ที่เกือบจะทำในสิ่งที่ฉันต้องการ แต่ก็ล้มเหลวในการเรียงลำดับ ค่าส่งคืนของสคริปต์ตามที่ถูกต้อง แต่ผลลัพธ์ไม่ได้ (ไม่ได้เรียงลำดับและทำซ้ำ) ถ้าฉันบรรทัดเหล่า| sort -uคำสั่งตามที่ระบุเอาท์พุทที่ถูกต้อง 0แต่ค่าตอบแทนอยู่เสมอ ยินดีต้อนรับโซลูชัน NB ที่เรียบง่ายในการแก้ปัญหา แต่เป็นคำถามเกี่ยวกับสาเหตุที่เกิดขึ้นในรหัสที่ฉันมี นั่นคือเหตุใดการเพิ่มไพพ์จึงดูเหมือนว่าจะหยุดสคริปต์ที่เพิ่มค่าตัวแปรr? นี่คือสคริปต์: function uniqfile { local r=0 for arg in "$@" do readlink -e "$arg" || (( ++r )) done #| sort -u ## remove that comment return …

2
ไม่รวมไดเรกทอรีเมื่อซิปไฟล์
ฉันมีสคริปต์ทุบตีที่ทำสิ่งนี้: zip -0 ../backup/backup.zip \ -r ./* \ -x \*CVS\* \ -x *Thumbs.db* \ ไดเรกทอรีที่สำรองนั้นเป็นไฟล์เก็บถาวร SVN (เคยเป็น CVS ย้อนกลับไปในวันนั้น) ฉันไม่สามารถแยกออกเป็น. svn และเนื้อหาได้ อะไรคือวิธีที่สะอาดที่สุดในการยกเว้น. svn (วนซ้ำทั้งต้น)
11 bash  scripting  zip 

1
ฉันจะสร้างเชลล์สคริปต์ที่ส่งเอาต์พุตไปยังกระบวนการได้อย่างไร
ฉันกำลังใช้งานโปรแกรมคอนโซลเซิร์ฟเวอร์ในหน้าจอเพราะฉันจำเป็นต้องอ่านและส่งคำสั่งเป็นครั้งคราว ฉันต้องการเรียกใช้แอปเป็น daemon ในพื้นหลัง (เริ่ม / หยุดด้วย init) ฉันสามารถtail -fบันทึกได้ แต่นั่นจะไม่ให้ฉันส่งข้อมูลไปยังกระบวนการ มีวิธีใดบ้างในการตั้งค่านี้เพื่อให้ฉันสามารถอ่านและส่งอินพุตได้ แต่ยังคงทำงานในพื้นหลังหรือไม่ ฉันต้องการที่จะสามารถส่งอินพุตไปยัง daemon จากกระบวนการที่แตกต่างกันเช่นกัน (เชลล์สคริปต์ที่สามารถส่งคำสั่ง "Stop \ n" เป็นต้น)

3
วิธี grep สำหรับ unicode ในสคริปต์ทุบตี
if grep -q "�" out.txt then echo "working" else cat out.txt fi โดยทั่วไปหากไฟล์ "out.txt" มี " " ที่ใดก็ได้ในไฟล์ฉันต้องการให้เสียงก้อง "ทำงาน" และถ้าไฟล์ "out.txt" นั้นไม่มี " " ที่ใดก็ตามในไฟล์ฉันก็อยาก มันเพื่อ cat out.txt แก้ไข: ดังนั้นนี่คือสิ่งที่ฉันทำ ฉันกำลังพยายามที่จะเปิดใช้งานการถอดรหัส openssl openssl enc ส่งคืนค่า 0 เมื่อสำเร็จไม่ใช่ค่าศูนย์ หมายเหตุ: คุณจะได้รับผลบวกปลอมเนื่องจาก AES / CBC สามารถกำหนดได้ว่า "การถอดรหัสทำงานได้" หรือไม่ขึ้นอยู่กับการรับสิทธิ์ ดังนั้นไฟล์ถอดรหัส แต่มันจะไม่เป็นรหัสผ่านที่ถูกต้องดังนั้นมันจะมีซึ่งพูดพล่อยๆในนั้น อักขระทั่วไปในการพูดพล่อยๆคือ " " …

3
รักษาสิทธิ์ของไฟล์ (หรือเรียกคืน) เมื่อทำการแทนที่ไฟล์
ฉันมีคำสั่งที่ยอมรับไฟล์เป็นอาร์กิวเมนต์ปรับเปลี่ยนไฟล์จากนั้นเขียนไปยังชื่อไฟล์ที่ระบุในอาร์กิวเมนต์ที่สอง ฉันจะเรียกโปรแกรมmodifyfileนั้น ฉันอยากให้มันทำงาน "แทนที่" ดังนั้นฉันจึงเขียนเชลล์สคริป (ทุบตี) ที่แก้ไขมันเป็นไฟล์ชั่วคราวจากนั้นย้ายมันกลับมา: TMP=`mktemp` modifyfile "$original" "$TMP" mv -v "$TMP" "$original" นี่เป็นผลข้างเคียงที่โชคร้ายของการทำลายการอนุญาตในไฟล์นี้ ไฟล์จะถูกสร้างขึ้นใหม่โดยมีการอนุญาตเริ่มต้น มีวิธีบอกให้mvคำสั่งเขียนทับปลายทางโดยไม่เปลี่ยนการอนุญาตหรือไม่? หรือจะมีวิธีบันทึกผู้ใช้กลุ่มและการอนุญาตจากต้นฉบับและกู้คืนได้หรือไม่

5
วิธีการตรวจจับจากสคริปต์เมื่อโหลดเดสก์ท็อปของผู้ใช้
ฉันมีภูตที่ถูกนำไปใช้ในการทุบตีและทำงานโดยวิธีการcronและ@rebootตัวเลือกที่แสดงให้เห็นว่าเดสก์ท็อปไม่มีการใช้งาน สคริปต์มีดังต่อไปนี้ (กำหนดเวลาสั้น ๆ สำหรับการทดสอบ): #!/bin/bash P_STATE=0 while : do sleep 5 if [ $P_STATE == 0 ]; then [ `xprintidle` -ge 25000 ] && P_STATE=1 && wmctrl -k on else [ `xprintidle` -le 25000 ] && P_STATE=0 done ปัญหา: หากผู้ใช้ยังอยู่ในหน้าจอเข้าสู่ระบบxprintidleและwmctrlล้มเหลวเนื่องจากเดสก์ท็อปยังไม่โหลด เพื่อหลีกเลี่ยงสิ่งนี้ฉันได้ใส่บรรทัดถัดไปไว้ที่จุดเริ่มต้นของสคริปต์: while: do sleep 10s [ -n `who | …

5
ใช้สถิติเพื่อจัดทำเวลาประทับสำหรับการสัมผัส
กำลังพยายาม OCR เอกสาร insitu บางส่วน (จากบรรทัดคำสั่ง linux บน windows share) กระบวนการของ OCRing คือการค้นหาและฉันได้สับสนโดยใช้คำสั่ง find เพื่อไพพ์ไฟล์ผ่านลูปอย่างถูกต้อง อย่างไรก็ตามฉันจำเป็นต้องเก็บบันทึกเวลาดั้งเดิมไว้เพื่อแก้ไข ฉันกำลังพยายามใช้สถิติและแตะดังต่อไปนี้: #!/bin/bash OLDIFS=$IFS IFS=$(echo -en "\n\b") for f in `find /mnt/library/Libra/Libra/Ashfords -name "*.pdf"` do ORIGTS=`stat -c "%Y" $f` sudo /opt/ABBYYOCR9/abbyyocr9 -rl English -pi -if $f -f PDFA -paemImageOnText -pafpr original -of $f touch -t …
11 bash  scripting  stat 

3
จะทำการแทนที่ข้อความในลำดับชั้นของโฟลเดอร์ขนาดใหญ่ได้อย่างไร
ฉันต้องการค้นหาและแทนที่ข้อความในไฟล์จำนวนมากยกเว้นบางกรณี สำหรับแต่ละบรรทัดฉันต้องการให้ฉันถามว่าฉันต้องการแทนที่บรรทัดนั้นหรือไม่ บางสิ่งที่คล้ายกับเสียงเรียกเข้า:%s/from/to/gc(พร้อมกับcเพื่อให้พร้อมรับคำยืนยัน) แต่ข้ามชุดโฟลเดอร์ มีเครื่องมือบรรทัดคำสั่งหรือสคริปต์ที่ดีที่สามารถใช้ได้หรือไม่?

4
ฉันจะบันทึกรหัสผ่านได้อย่างไรเมื่อใช้ SCP (คัดลอก)
ฉันประสบปัญหาเมื่อดึงไฟล์จากเครื่องอื่นไปยังเครื่องของฉันโดยใช้ SCP การถ่ายโอนไฟล์สำเร็จ แต่ทุกครั้งที่ขอรหัสผ่าน ฉันต้องการเรียกใช้SCPคำสั่งนี้เป็นcronjobฉันจะบันทึกรหัสผ่านสำหรับระบบอัตโนมัตินี้ได้อย่างไร scp user@abc.com:/usr/etc/Output/*.txt /usr/abc/ user@abc.com's password:
11 scripting  scp 

1
ใช้ 'จดหมาย' เพื่ออ่านอีเมลจากบรรทัดคำสั่ง
ฉันรู้ว่าเราสามารถใช้mailคำสั่งในเทอร์มินัลเพื่อเริ่มใช้mailโปรแกรมในโหมดโต้ตอบ อย่างไรก็ตามฉันต้องการอ่านอีเมลโดยใช้mailคำสั่งแบบไม่โต้ตอบ มีคำสั่งเช่นไร $ mail -optionToReadMail -mailNumber 1; ซึ่งจะแสดงเนื้อหาของอีเมลใน stdout?
11 bash  scripting  mailx 

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