คำถามติดแท็ก shell-script

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

3
เรียกคืนไม่ได้หลายโฟลเดอร์
ฉันมีคลังเก็บ RAR หลายแห่งกระจายอยู่ทั่วไดเรกทอรีหลายแห่ง แต่ทั้งหมดอยู่ภายใต้โฟลเดอร์รูทเฉพาะใน NAS ของฉันที่ใช้ Debian มีคนช่วยฉันเขียนสคริปต์ง่ายๆที่จะเข้าไปในแต่ละโฟลเดอร์ซ้ำเนื้อหาไม่กลับไปที่โฟลเดอร์หลักและย้ายไปยังไดเรกทอรีถัดไป ดังนั้น: cd Photos/Summer/Italy/ unrar e Italy.rar wait cd ../France/ unrar e France.rar wait etc... ดังนั้นเพียงแค่ชี้ไปที่รูทโฟลเดอร์ "รูปภาพ" และมันกระพริบผ่านมันไปไม่ได้ทำให้ทุกอย่างเข้าทาง ... เช่นโครงสร้างไดเรกทอรี: *Photos: -Summer --Italy ---Italy.rar ---Italy.r01 ---Italy.r02 --France ---France.rar ---France.r01 ---France.r02 -Winter --Siberia ---Siberia.rar ---Siberia.r01 ---Siberia.r02 --Canada ---Snow.rar ---Snow.r01 ---Snow.r02

2
ฉันจะเชื่อมสตริงจากรายการในสคริปต์ทุบตีได้อย่างไร
ตัวอย่างเช่น: List="A B C D" for I in $List do OUT=$OUT" -$I" done เมื่อฉันเรียกใช้ผลลัพธ์นี้คือ: " -A -B -C -D" แต่ต้องการเป็น: "-A -B -C -D" ฉันจะต่อกันได้โดยไม่ต้องนำหน้า? btw นี้เป็นรายการอาร์กิวเมนต์ของสคริปต์

3
ตรวจสอบไฟล์ ASCII ด้วยคำสั่ง file โดย shell scrript
ด้วยคำสั่ง file ฉันจำเป็นต้องตรวจสอบไฟล์หลายไฟล์ถ้าพวกเขา ASCII หรือรูปแบบอื่น ๆ บางครั้งฉันได้รับจากคำสั่ง file: file1: ASCII English text และบางครั้งฉันก็ได้รับคำตอบที่แตกต่างจากคำสั่ง file file2: Non-ISO extended-ASCII English text, with very long lines ฉันไม่แน่ใจจริงๆถ้ามีคำตอบอื่นที่มีไวยากรณ์ต่างกัน คำถามของฉันคือ: ฉันเขียนไวยากรณ์ follwing ksh เพื่อตรวจสอบว่าไฟล์เป็น ASCII แต่ฉันไม่แน่ใจว่า ไวยากรณ์ต่อไปนี้เป็นไวยากรณ์ที่ดีที่สุดเพื่อตรวจสอบรูปแบบ ASCII? [[ ` file $some_file | grep –c ASCII ` = 1 ]] && print "you have ascii …

1
ลบไฟล์บันทึกเก่าใน AIX
ฉันพยายามเขียนสคริปต์เพื่อลบไฟล์บันทึกเก่า \var\log\applog\nmon บนระบบ AIX ของฉัน เรามักจะได้รับการแจ้งเตือนว่าระบบไฟล์เกือบเต็มแล้วและในขณะนี้ลบไฟล์เก่าด้วยมือ โดยพื้นฐานแล้วสิ่งที่ฉันกำลังมองหาคือสคริปต์ที่ฉันสามารถกำหนดเวลาในการ cron งาน สคริปต์นี้ควรเก็บบันทึกเป็นเวลาสองเดือนและลบที่เหลือ มีไฟล์สองไฟล์ที่ฉันไม่ต้องการลบ: .profile และ .sh_history. ฉันลองคำสั่งนี้: find nmon -mtime +60 -type f -not -name ".profile" -not -name ".sh_history" –delete มันใช้งานได้ดี แต่มันก็ลบทั้งสองไฟล์ที่ฉันพูดถึงไปก่อนหน้านี้ ฉันไม่แน่ใจว่าจะดำเนินการกับสคริปต์อย่างไรเพื่อให้ฉันสามารถลบไฟล์บันทึกเก่า แต่ไม่ใช่ไฟล์ทั้งสอง ฉันลองคำสั่งด้านบน แต่มันทำให้ฉันมีข้อผิดพลาดนี้: find: 0652-017 -not is not a valid option.
3 unix  shell-script  find  aix  ksh 

2
กำหนดจุดเริ่มต้นของไฟล์เมื่อผ่านไฟล์หลายไฟล์ไปยัง awk
ฉันมีเชลล์สคริปต์ดังต่อไปนี้ - ค้นหา "." "บัญชี" -maxdepth 1 -name "* .aspx" | xargs awk -f get_controls.awk มันส่งไฟล์หลายไฟล์ไปยังสคริปต์ awk BEGIN{ FS="\"" } ... /Src=/{ printf("\t%s \r\n", $6); } ฉันต้องการพิมพ์ชื่อไฟล์ปัจจุบันทั้งจากเชลล์สคริปต์หรือจากภายใน awk ที่จุดเริ่มต้นของไฟล์ Awk รู้ชื่อไฟล์ปัจจุบันอยู่ในตัวแปร FILENAME แต่ฉันไม่สามารถระบุจุดเริ่มต้นของไฟล์ได้ ฉันได้ลอง(NR==1)แล้ว แต่ไฟล์ทั้งหมดจะถูกส่งไปยัง awk เป็นสตรีมและค่าของ NR จะเพิ่มขึ้นเรื่อย ๆ เพิ่งคิดออกเมื่อฉันพิมพ์นี้ จะโพสต์คำตอบด้านล่าง!

0
เรียกใช้โปรแกรมเมื่อออกจากระบบ kde
ฉันสร้างสคริปต์สำรองแล้วและต้องการเรียกใช้ในหน้าต่างเทอร์มินัล (เพื่อดูความคืบหน้า) เมื่อฉันออกจากระบบจาก KDE ฉันใช้คุณลักษณะการเริ่มอัตโนมัติและใช้งานได้ แต่ฉันไม่สามารถแสดงหน้าต่างเทอร์มินัลได้

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

2
วิธีการรับข้อมูลผู้ใช้จากสคริปต์ทุบตีเมื่อเรียกใช้เป็นปฏิบัติการโดยไม่มีขั้ว?
ฉันกำลังพยายามสร้างสคริปต์ทุบตีซึ่งนำข้อมูลผู้ใช้บางส่วนและกระบวนการตามอินพุต สคริปต์นี้สามารถเรียกใช้งานได้และมี shebang สคริปต์มีลักษณะดังนี้: #!/bin/bash read name -p "Enter your name" echo $name >> namelist.txt ฉันไม่ต้องการให้ผู้ใช้เปิดสคริปต์ในเทอร์มินัล สคริปต์ถูกทำให้สามารถเรียกใช้งานได้ (chmod + x) และดับเบิลคลิกที่สคริปต์จะทำให้ทำงาน แต่มันจะไม่หยุดที่จะใส่และไฟล์ยังคงว่างเปล่า

2
การสร้างไฟล์ HTML เทมเพลตเฉพาะสำหรับไฟล์ MP4 ทั้งหมดในไดเรกทอรี
ฉันได้เตรียมไฟล์วิดีโอจำนวนหนึ่งที่แต่ละคนจะมีหน้า HTML ของตัวเอง (ฉันกำลังสร้างวิดีโอการบรรยายและพยายามทำให้สิ่งต่าง ๆ เรียบง่ายเพราะฉันเป็นนักเคมีไม่ใช่ผู้เขียนโค้ด) ฉันต้องการตั้งค่าคำสั่งที่บรรทัดคำสั่ง Windows (v.7) ที่ฉันสามารถคัดลอก / วางในหน้าต่างและมี ค้นหาไฟล์ MP4 ทั้งหมดในไดเรกทอรี สร้างไฟล์ HTML ที่มีชื่อเดียวกัน (ไม่มีนามสกุล) 'เติม' ไฟล์ HTML นี้ด้วยเทมเพลต HTML ฉันรู้ว่าสิ่งเหล่านี้สามารถทำได้ในขั้นตอนเดียว แต่ฉันไม่รังเกียจที่จะสง่างามน้อยกว่า - รอบ CPU ไม่ได้แพงในกรณีนี้ ตัวอย่างหนึ่งของชื่อไฟล์คือ: 11-a - Ion Dipole Interactions.mp4 ในกรณีที่เป็นประโยชน์ นี่คือสิ่งที่ฉันมีจนถึงตอนนี้และมันแตกได้อย่างไร มีความคิดเห็นเกี่ยวกับวิธีทำให้มันทำงานอย่างไร for %G in (*.mp4) do (copy /Y nul "%nG".html) เช่นสแกนไดเรกทอรีสำหรับ MP4 …

1
แทนที่คำสั่ง LaTeX ที่ซ้อนกันด้วยหลายอาร์กิวเมนต์
ฉันต้องการแทนที่คำสั่ง LaTeX \teilseiten{left col width}{left col text}{right col text} โดยสภาพแวดล้อมที่ซ้อนกัน ปัญหาคือว่าอาร์กิวเมนต์ที่สองและสามของ \teilseiten มีคำสั่งและ / หรือสภาพแวดล้อม \teilseiten{0.5}{ Some text and \textbf{even} \begin{tiny} environments \end{tiny} }{ Some other text and \textbf{even} \begin{tiny} more environments \end{tiny} } ควรเปลี่ยนด้วย \begin{mycolumns} \begin{mycolumn}{0.5} Some text and \textbf{even} \begin{tiny} environments \end{tiny} \end{mycolumn} \begin{mycolumn}{0.5} Some other text and …

1
Bash สคริปต์ลบอัตโนมัติ
ฉันกำลังมองหาสคริปต์ทุบตีที่จะลบโฟลเดอร์ที่เก่าที่สุดโดยอัตโนมัติ (สมมติว่า 3 รายการสุดท้าย) ในไดเรกทอรีเมื่อพื้นที่ว่างลดลงต่ำกว่า X gigs ฉันอ่านโพสต์ที่เกี่ยวข้อง แต่เนื่องจากฉันไม่รู้อะไรเลยฉันไม่ทราบวิธีแก้ไขสคริปต์อย่างปลอดภัยด้วยตนเอง

1
การเพิ่มแถวที่กำหนดเองลงในไฟล์โดยใช้เชลล์สคริปต์
ฉันมีไฟล์ข้อความที่มีจำนวนแถวโดยพลการสามเท่าดังนี้: 4 5 2 12 16 6 ตอนนี้ฉันต้องการเพิ่มแถวที่เกี่ยวข้องลงในไฟล์ สมมติว่าฉันต้องการเพิ่ม 4 แถวต่อแถวซึ่งมีค่าเหมือนกัน คอลัมน์สองคอลัมน์แรกมีการเปลี่ยนแปลงเล็กน้อย (-1 และ +1 สำหรับหนึ่งในนั้นทั้งหมดทั้งสี่ชุด) และสำหรับคอลัมน์ที่สามค่าจะลดลงครึ่งหนึ่ง: 4 5 2 (original row) 3 5 1 (added rows) 5 5 1 4 4 1 4 6 1 12 16 6 (original row) 11 16 3 (added rows) 13 16 3 12 …

1
wget โดยไม่ต้องเก็บแคช
ฉันพยายามเรียกใช้สคริปต์ทุบตีระยะไกลที่โฮสต์บน Github: wget -O - https://raw.githubusercontent.com/xxxxx/script.sh ทุกอย่างใช้งานได้ดีไม่มีปัญหา แต่เมื่อฉันอัปเดตสคริปต์ด้านบนและฉันเรียกใช้คำสั่งเดียวกันมันจะประมวลผลสคริปต์เก่า ฉันลองด้วย --no-cache, --delete-after, ปราศจากความสำเร็จ ทำอย่างไรจึงจะได้สำเนาสดใหม่ทุกครั้ง?

1
สร้างคำสั่งเชลล์สคริปต์เพื่อยกเลิกหลังจากหมดเวลาที่แน่นอน
ฉันมักจะมีสถานการณ์ในสคริปต์เชลล์ Linux ว่าหากคำสั่งเฉพาะใช้เวลานานเกินไปในการเรียกใช้เช่น เนื่องจากปัญหาเครือข่ายเชลล์สคริปต์ควรยกเลิกการรันคำสั่งนี้ มีวิธีปฏิบัติที่ดีที่สุดในการเรียกใช้คำสั่งการหมดเวลาในเชลล์สคริปต์ เช่น. รันคำสั่งผ่านคำสั่งการตรวจสอบบางประเภทที่มีเวลาทำงานสูงสุดที่กำหนดเป็นวินาที? สิ่งที่ฉันกำลังมองหาคือการมีบางอย่างเช่น "หมดเวลา -s 300 'บรรทัดคำสั่งนี้'" วิธีแก้ปัญหาของ Cron นั้นไม่ใช่คำถามและไม่ใช่คำตอบที่ยอมรับได้

2
การเปลี่ยนชื่อไฟล์หลายไฟล์ที่ตรงกับ UNIX ค้นหาคำสำคัญ
ฉันมีผลลัพธ์จากคำสั่ง find สำหรับค้นหาไฟล์ที่มีyyyชื่อ: ./plonetheme/xxx/yyy-logo.png ./plonetheme/xxx/profiles/default/plonetheme.yyy_various.txt ./plonetheme/xxx/skins/plonetheme_yyy_custom_images ./plonetheme/xxx/skins/plonetheme_yyy_custom_images/CONTENT.txt ./plonetheme/xxx/skins/plonetheme_yyy_custom_templates ./plonetheme/xxx/skins/plonetheme_yyy_custom_templates/CONTENT.txt ./plonetheme/xxx/skins/plonetheme_yyy_custom_templates/main_template.pt ./plonetheme/xxx/skins/plonetheme_yyy_styles ./plonetheme/xxx/skins/plonetheme_yyy_styles/base_properties.props ./plonetheme/xxx/skins/plonetheme_yyy_styles/CONTENT.txt ฉันจะเปลี่ยนชื่อไฟล์ทั้งหมดเพื่อให้สตริงyyyนั้นถูกแทนที่ด้วยได้zzzอย่างไร?

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