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

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

4
วิธีใช้ logrotate ในเชลล์สคริปต์
test.sh #!/bin/bash echo "Hello World" test2.sh #!/bin/bash while true do sh test.sh >> /script_logs/test.log & done ฉันต้องการใช้ logrotate เพื่อควบคุมขนาดของไฟล์บันทึกดังนั้นวิธีการใช้ logrotate หากสถานการณ์เป็นเช่นนี้

1
ทราบว่ากระบวนการใดที่ I / O ไม่มี iotop
บน Linux ฉันต้องการทราบว่ากระบวนการใดใช้ Band I ของดิสก์ I / O ของฉัน ฉันรู้ว่าฉันสามารถใช้งานได้iotopแต่ฉันมีเครื่องที่iotopไม่สามารถติดตั้งด้วยเหตุผลต่าง ๆได้ ฉันจะรับข้อมูลด้วยตนเองได้อย่างไร ( iotopตัวเองดำเนินการอย่างไร)

3
คุณยังคงประโยคต่อไปได้อย่างไรด้วยคำสั่งภายใน
ตัวอย่างเช่นฉันพยายามพูดว่า "มี 10 คนออนไลน์ในขณะนี้" ในไฟล์สคริปต์ของฉัน ฉันไม่สามารถดูเหมือนจะได้รับคำสั่งทำงานโดยไม่มีส่วน "คนออนไลน์ในขณะนี้" ในบรรทัดถัดไป ในตอนนี้ฉันมี w='who | wc -l' echo "There are $w people online at the moment" อย่างไรก็ตามฉันมักจะจบลงด้วยการส่งออก There are who | wc -l users online at the moment คุณจะทำให้คำสั่งทำงานตรงกลางได้อย่างไร? ฉันพยายามตรวจสอบและคัดลอกตัวอย่างแล้ว แต่ดูเหมือนจะไม่ช่วยให้ปัญหาการทดแทนคำสั่งของฉัน
12 bash  scripting 

3
เชลล์สคริปต์รอคำสั่งพื้นหลัง
ฉันกำลังเขียนสคริปต์ แต่มีบางสิ่งที่ฉันต้องการฉันไม่สามารถหาวิธีที่จะทำ ... ฉันต้องสร้างคำสั่งในพื้นหลัง "command1 &" จากนั้นบางส่วนในสคริปต์ฉันต้องรอให้เสร็จก่อนที่ฉันจะ command2 โดยทั่วไปฉันต้องการสิ่งนี้: หมายเหตุ: แต่ละคำสั่งจะทำงานในไดเรกทอรีเฉพาะ! ในตอนท้ายของ while ในขณะที่ command1 ของฉันสร้าง 4 ไดเร็กตอรี่, ซึ่งแต่ละอันรันโพรเซสเฉพาะ, ดังนั้นจำนวนโพรเซสที่กำลังทำงานอยู่คือ 4 a=1 while [$a -lt 4 ] . command1 #Generates 1 Process a= `export $a +1` done #Wait until the 4 process end and then run the command2 . command2 …

5
จุดตัดของสองอาร์เรย์ใน BASH
ฉันมีสองอาร์เรย์ดังนี้: A=(vol-175a3b54 vol-382c477b vol-8c027acf vol-93d6fed0 vol-71600106 vol-79f7970e vol-e3d6a894 vol-d9d6a8ae vol-8dbbc2fa vol-98c2bbef vol-ae7ed9e3 vol-5540e618 vol-9e3bbed3 vol-993bbed4 vol-a83bbee5 vol-ff52deb2) B=(vol-175a3b54 vol-e38d0c94 vol-2a19386a vol-b846c5cf vol-98c2bbef vol-7320102b vol-8f6226cc vol-27991850 vol-71600106 vol-615e1222) อาร์เรย์ไม่ถูกเรียงลำดับและอาจมีองค์ประกอบที่ซ้ำกัน ฉันต้องการสร้างจุดตัดของทั้งสองอาร์เรย์และเก็บองค์ประกอบไว้ในอาร์เรย์อื่น ฉันจะทำอย่างไร นอกจากนี้ฉันจะดูรายการองค์ประกอบที่ปรากฏใน B และไม่มีใน A ได้อย่างไร
12 bash  scripting  array 

4
grep - ลบข้อความหลังจากโทเค็นตัวคั่น
ฉันมีไฟล์ที่ฉันต้องการกำจัดทุกอย่างหลังจากแรก;ในทุกบรรทัด ดังนั้นไฟล์เช่นนี้: sdfsdsdf; fsdfsddf;sdfsd; จะทำให้เกิดสิ่งนี้: sdfsdsdf fsdfsddf เราได้ตรวจสอบและgrep sedฉันขอขอบคุณคำตอบที่รวมคำสั่งทั้งสองนี้

5
เรียกใช้สคริปต์ผ่าน cron ทุกสัปดาห์
ฉันได้ทำการวิจัยค่อนข้างน้อยเกี่ยวกับวิธีการทำเช่นนี้และฉันเห็นว่าไม่มีวิธีโดยตรงใน cron ในการทำงานพูดทุก ๆ วันพฤหัสบดี ตอนนี้ฉันกำลังโน้มตัวไปยังการสร้างสคริปต์ที่จะทำงานทุกสัปดาห์และจะแตะไฟล์ "ตั้งค่าสถานะ" เมื่อมันทำงานและหากมันทำงานและมีไฟล์อยู่แล้วเพื่อลบไฟล์ (และไม่ทำการ การกระทำรายปักษ์) คำถามของฉันคือมีวิธีอื่นที่สวยงามหรือเรียบง่ายกว่านี้ในการบรรลุเป้าหมายของการทุบตีสคริปต์ของการกระทำที่ทำงานทุกสัปดาห์โดยอัตโนมัติหรือไม่? ขอบคุณ!
12 bash  scripting  cron 

7
งานจริงเพื่อเรียนรู้เชลล์สคริปต์ [ปิด]
ปิด. คำถามนี้เป็นคำถามปิดหัวข้อ ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้เป็นไปตามหัวข้อสำหรับ Unix & Linux Stack Exchange ปิดให้บริการใน10 เดือนที่ผ่านมา ฉันกำลังมองหาปัญหาที่พบบ่อยในการจัดการระบบยูนิกซ์และวิธีที่เชลล์สคริปต์สามารถแก้ไขได้ สมบูรณ์เพื่อการศึกษาด้วยตนเอง นอกจากนี้ฉันต้องการทราบว่าคุณจะเรียนรู้การเขียนสคริปต์เชลล์อย่างไร

3
จะทำให้ไพพ์ไลน์รอการสิ้นสุดไฟล์หรือหยุดหลังจากเกิดข้อผิดพลาดได้อย่างไร?
ฉันลองคำสั่งต่อไปนี้หลังจากดูวิดีโอนี้ใน shenanigans ไปป์ man -k . | dmenu -l 20 | awk '{print $1}' | xargs -r man -Tpdf | zathura - โดยทั่วไปจะพิมพ์รายการ manpages ไปที่ dmenu เพื่อให้ผู้ใช้เลือกหนึ่งรายการจากนั้นจะใช้ xargs เพื่อเรียกใช้man -Tpdf %(พิมพ์ไปยัง stdout PDF ของ manpage git จากอินพุต xargs) และส่ง pdf ไปยังโปรแกรมอ่าน pdf (zathura ) ปัญหาคือ (ตามที่คุณเห็นในวิดีโอ) ตัวอ่าน pdf เริ่มต้นก่อนที่ฉันจะเลือก manpage …

2
เปลี่ยนรหัสผ่านโดยทางโปรแกรม
ใน Raspian รุ่นปัจจุบันฉันรู้ว่ามันเป็นไปได้ที่จะเปลี่ยนรหัสผ่านของผู้ใช้ที่เข้าสู่ระบบในปัจจุบันจากบรรทัดคำสั่งดังนี้: sudo passwd ซึ่งจะแจ้งให้ผู้ใช้ป้อนรหัสผ่านใหม่สองครั้ง สิ่งนี้จะสร้างผลลัพธ์เช่น: Changing password for pi. (current) UNIX password: Enter new UNIX password: Retype new UNIX password: passwd: password updated successfully ฉันสงสัยว่ามีวิธีที่เป็นไปได้ในการเปลี่ยนรหัสผ่านโดยทางโปรแกรมเช่นจากเชลล์สคริปต์ ฉันพยายามสร้างสคริปต์การกำหนดค่าเพื่อปรับใช้กับ Raspberry Pis ของฉันและฉันไม่ต้องการพิมพ์รหัสผ่านใหม่ด้วยตนเอง

5
ใช้ $ หรือเปล่า ในคำสั่ง if
function foo { (cd $FOOBAR; <some command> if [$? -ne 0] then echo "Nope!" else echo "OK!" fi ) } ฉันพยายามเขียนฟังก์ชั่นแบบเดียวกับข้างบนและวางไว้ในไฟล์. bashrc ของฉัน หลังจากที่ฉันส่งไฟล์และเรียกใช้ฉันจะได้รับ: เวลาทั้งหมด: 51 วินาที -bash: [1: ไม่พบคำสั่ง ตกลง! มีใครช่วยฉันเข้าใจสิ่งที่ฉันทำผิดหรือเปล่า?
12 bash  scripting 

3
จะไพพ์รายการคำสั่งที่แสดงโดยของ“ แท็บเสร็จสมบูรณ์” ได้อย่างไร?
เมื่อใช้คำสั่งใน bash ฉันชอบตัวเลือก double tab เพื่อแสดงคำสั่งที่มี คำสั่งบางคำมีการจับคู่ที่เป็นไปได้มากกว่าคำสั่งอื่น ๆ : สกรีนช็อตของการเติมแท็บให้สมบูรณ์ http://img13.imageshack.us/img13/5541/picturemhy.jpg มีวิธีที่ฉันสามารถไพพ์เอาท์พุทของแท็บดับเบิลไปยังที่ใดที่หนึ่งได้grepไหม? ฉันพบโพสต์ที่เกี่ยวข้องแต่ฉันก็ยังไม่แน่ใจว่าจะนำไปใช้กับไพพ์ได้อย่างไร

4
ฉันจะตรวจสอบว่าคอมพิวเตอร์ระยะไกลออนไลน์สำหรับการเข้าถึง ssh / script ได้อย่างไร
ฉันกำลังเขียนสคริปต์ที่จะสำรองข้อมูลจากแล็ปท็อปของฉันไปยังเซิร์ฟเวอร์ Ubuntu หากต้องการทำเช่นนั้นฉันกำลังมองหาคำสั่ง (ba) sh เพื่อทดสอบว่าเซิร์ฟเวอร์พร้อมใช้งานก่อนเริ่มการสำรองข้อมูลหรือไม่ บางอย่างเช่นpingบนพอร์ต 22 ที่ส่งคืนบูลีน ฉันจะทำสิ่งนี้ได้อย่างไร

2
Scrip เพื่อลบไฟล์ที่เก่ากว่า 6 เดือน
การตั้งค่างาน cron เดือนละครั้งเพื่อเริ่มสคริปต์ สคริปต์คือการหมุนไฟล์ในแต่ละเดือนเนื่องจากไฟล์มีขนาดใหญ่เกินไปและเปลี่ยนชื่อไฟล์เก่า เมื่อไฟล์เก่ากว่าหกเดือนฉันต้องการลบมัน ต้องการเรียกใช้สคริปต์นี้เดือนละครั้ง เป็นไปได้ไหมที่จะลบอันเก่าออก โปรดแจ้งให้เราทราบหากยังไม่ชัดเจนเพียงพอ
12 scripting  ksh 

6
ฉันจะแยก / แยกวิเคราะห์ URL ที่สมบูรณ์จากสตริงแบบกึ่งสุ่มได้อย่างไร
ฉันต้องการ bash parse / แยก URL แบบเต็ม (และเฉพาะ URL) จากสตริงสั้นแบบสุ่ม ตัวอย่าง: bob, the address is http://www.google.com หรือ https://foo.com/category/example.html is up หรือ Error 123 occurred at http://bit.ly/~1223456677878 หรือ Stats are up: https://foo1234.net/report.jpg ฉันลองใช้cat foo_output | egrep -o "https?://[\w'-\.]*\s"แต่ดูเหมือนจะไม่ทำงาน

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