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

สำหรับคำถามเกี่ยวกับสคริปต์ที่เขียนขึ้นสำหรับเชลล์คำสั่ง Bash สำหรับเชลล์สคริปต์ที่มีข้อผิดพลาด / ข้อผิดพลาดทางไวยากรณ์โปรดตรวจสอบด้วยโปรแกรม shellcheck (หรือในเซิร์ฟเวอร์ shellcheck เว็บที่ https://shellcheck.net) ก่อนโพสต์ที่นี่ คำถามเกี่ยวกับการใช้งานอินเทอร์แอคทีฟของ Bash นั้นมีแนวโน้มที่จะอยู่ในหัวข้อของผู้ใช้ขั้นสูงมากกว่าในสแต็คโอเวอร์โฟลว์

12
วิธีการ 'grep' สตรีมต่อเนื่อง
เป็นไปได้ไหมที่จะใช้grepในการสตรีมต่อเนื่อง? สิ่งที่ฉันหมายถึงคือการเรียงลำดับของtail -f <file>คำสั่ง แต่มีgrepในผลลัพธ์เพื่อเก็บเฉพาะบรรทัดที่ฉันสนใจ ฉันพยายามแล้วtail -f <file> | grep patternแต่ดูเหมือนว่าgrepจะสามารถดำเนินการได้เมื่อtailเสร็จสิ้นแล้วนั่นคือการพูดที่ไม่เคยทำ
729 linux  bash  shell  grep  tail 

21
แยกสตริงย่อยใน Bash
ให้ชื่อไฟล์ในรูปแบบsomeletters_12345_moreleters.extฉันต้องการแยก 5 หลักและใส่ลงในตัวแปร ดังนั้นเพื่อเน้นจุดนั้นฉันมีชื่อไฟล์ที่มีจำนวน x ตัวอักษรจากนั้นลำดับห้าหลักที่ล้อมรอบด้วยขีดล่างเดี่ยวด้านใดด้านหนึ่งแล้วอีกชุดของจำนวน x อักขระ ฉันต้องการที่จะนำตัวเลข 5 หลักและใส่ลงในตัวแปร ฉันสนใจมากในหลายวิธีที่สามารถทำได้
728 string  bash  shell  substring 

9
ตรวจสอบจำนวนอาร์กิวเมนต์ที่ส่งผ่านไปยังสคริปต์ Bash
ฉันต้องการให้สคริปต์ Bash ของฉันพิมพ์ข้อความแสดงข้อผิดพลาดหากไม่นับจำนวนอาร์กิวเมนต์ที่ต้องการ ฉันลองรหัสต่อไปนี้: #!/bin/bash echo Script name: $0 echo $# arguments if [$# -ne 1]; then echo "illegal number of parameters" fi ด้วยเหตุผลที่ไม่ทราบสาเหตุบางอย่างฉันได้รับข้อผิดพลาดต่อไปนี้: test: line 4: [2: command not found ผมทำอะไรผิดหรือเปล่า?

7
ในสคริปต์ Bash ฉันจะออกจากสคริปต์ทั้งหมดได้อย่างไรหากมีเงื่อนไขบางประการเกิดขึ้น
ฉันกำลังเขียนสคริปต์ใน Bash เพื่อทดสอบโค้ด อย่างไรก็ตามดูเหมือนว่าโง่ที่จะทำการทดสอบหากการคอมไพล์โค้ดล้มเหลวตั้งแต่แรกซึ่งในกรณีนี้ฉันจะยกเลิกการทดสอบ มีวิธีที่ฉันสามารถทำได้โดยไม่ต้องห่อทั้งสคริปต์ในขณะที่ห่วงและใช้ตัวแบ่ง? บางสิ่งบางอย่างเหมือนdun dun dun goto?

7
ชุด -e หมายถึงอะไรในสคริปต์ทุบตี?
ฉันกำลังศึกษาเนื้อหาของไฟล์preinstนี้ที่สคริปต์ดำเนินการก่อนแพ็กเกจนั้นจะถูกแตกจากไฟล์ Debian archive (.deb) สคริปต์มีรหัสต่อไปนี้: #!/bin/bash set -e # Automatically added by dh_installinit if [ "$1" = install ]; then if [ -d /usr/share/MyApplicationName ]; then echo "MyApplicationName is just installed" return 1 fi rm -Rf $HOME/.config/nautilus-actions/nautilus-actions.conf rm -Rf $HOME/.local/share/file-manager/actions/* fi # End automatically added section ข้อความค้นหาแรกของฉันเกี่ยวกับบรรทัด: set -e ฉันคิดว่าสคริปต์ส่วนที่เหลือนั้นค่อนข้างเรียบง่าย: …
713 linux  bash  shell  sh 

10
ฉันจะหยุดเชลล์สคริปต์ชั่วคราวหนึ่งวินาทีก่อนดำเนินการต่อได้อย่างไร
ฉันพบวิธีที่จะรออินพุตของผู้ใช้เท่านั้น อย่างไรก็ตามฉันต้องการหยุดชั่วคราวเท่านั้นเพื่อที่while trueจะได้ไม่เกิดความผิดพลาดกับคอมพิวเตอร์ของฉัน ฉันพยายามแต่มันบอกว่าpause(1) -bash: syntax error near unexpected token '1'จะทำอย่างไร?
705 bash  shell  unix  terminal 

9
การกำหนดค่าเริ่มต้นให้กับตัวแปรเชลล์ด้วยคำสั่งเดียวใน bash
ฉันมีการทดสอบทั้งหมดเกี่ยวกับตัวแปรในสคริปต์เชลล์ bash (3.00) ซึ่งหากไม่ได้ตั้งค่าตัวแปรไว้มันจะกำหนดค่าเริ่มต้นเช่น: if [ -z "${VARIABLE}" ]; then FOO='default' else FOO=${VARIABLE} fi ฉันดูเหมือนจะจำได้ว่ามีไวยากรณ์ในการทำเช่นนี้ในหนึ่งบรรทัดสิ่งที่คล้ายกับผู้ประกอบการที่ประกอบไปด้วยตัวอย่างเช่น: FOO=${ ${VARIABLE} : 'default' } (แม้ว่าฉันรู้ว่าจะไม่ทำงาน ... ) ฉันบ้าหรือว่ามีอะไรอย่างนั้นอยู่จริง?
685 bash  shell 


19
ฉันจะลบไฟล์. pyc ทั้งหมดออกจากโครงการได้อย่างไร
ฉันได้เปลี่ยนชื่อไฟล์บางไฟล์ในโครงการขนาดใหญ่พอสมควรและต้องการลบไฟล์. pyc ที่ทิ้งไว้ ฉันลองสคริปต์ทุบตี: rm -r *.pyc แต่นั่นไม่ได้ชดเชยผ่านโฟลเดอร์อย่างที่ฉันคิด ผมทำอะไรผิดหรือเปล่า?
677 bash 

30
วิธีการค้นหา / แทนที่สตริงแบบเรียกซ้ำด้วย awk หรือ sed?
ฉันจะค้นหาและแทนที่ทุกเหตุการณ์ที่เกิดขึ้นได้อย่างไร: subdomainA.example.com กับ subdomainB.example.com ในทุกไฟล์ข้อความภายใต้/home/www/ต้นไม้ไดเรกทอรีซ้ำซ้ำ?
675 bash  sed  awk  replace 

7
เมื่อไหร่ที่เราต้องการเครื่องมือจัดฟันแบบโค้งรอบ ๆ ตัวแปรเชลล์
ในเชลล์สคริปต์เราจะใช้{}เมื่อขยายตัวแปร? ตัวอย่างเช่นฉันได้เห็นสิ่งต่อไปนี้: var=10 # Declare variable echo "${var}" # One use of the variable echo "$var" # Another use of the variable มีความแตกต่างอย่างมีนัยสำคัญหรือเป็นเพียงรูปแบบ? เป็นที่ต้องการมากกว่าหนึ่งอื่น ๆ ?

7
วิธีการใช้วงเล็บคู่หรือเดี่ยววงเล็บวงเล็บปีกกา
ฉันสับสนโดยการใช้วงเล็บวงเล็บวงเล็บปีกกาใน Bash เช่นเดียวกับความแตกต่างระหว่างรูปแบบสองหรือเดี่ยวของพวกเขา มีคำอธิบายที่ชัดเจนหรือไม่?
658 bash  syntax 

25
ค้นหาและฆ่ากระบวนการในหนึ่งบรรทัดโดยใช้ bash และ regex
ฉันมักจะต้องฆ่ากระบวนการระหว่างการเขียนโปรแกรม วิธีที่ฉันทำตอนนี้คือ: [~]$ ps aux | grep 'python csp_build.py' user 5124 1.0 0.3 214588 13852 pts/4 Sl+ 11:19 0:00 python csp_build.py user 5373 0.0 0.0 8096 960 pts/6 S+ 11:20 0:00 grep python csp_build.py [~]$ kill 5124 ฉันจะแยก id กระบวนการโดยอัตโนมัติและฆ่าในบรรทัดเดียวกันได้อย่างไร แบบนี้: [~]$ ps aux | grep 'python csp_build.py' | kill …
648 regex  bash  terminal  awk 

21
แยกสตริงออกเป็นอาร์เรย์ใน Bash
ในสคริปต์ Bash ฉันต้องการแยกบรรทัดออกเป็นชิ้น ๆ และเก็บไว้ในอาร์เรย์ เส้น: Paris, France, Europe ฉันต้องการที่จะมีพวกเขาในอาร์เรย์เช่นนี้: array[0] = Paris array[1] = France array[2] = Europe ฉันต้องการใช้รหัสอย่างง่ายความเร็วของคำสั่งไม่สำคัญ ฉันจะทำมันได้อย่างไร
640 arrays  bash  split 

12
ไวยากรณ์สำหรับ Bash บรรทัดเดียวแบบไม่ จำกัด ในขณะที่วนซ้ำ
ฉันกำลังมีปัญหาในการหาเซมิโคลอนและ / หรือเครื่องหมายปีกกาที่ถูกต้อง ฉันต้องการทำเช่นนี้ แต่เป็นหนึ่งซับจากบรรทัดคำสั่ง: while [ 1 ] do foo sleep 2 done
633 bash  loops  while-loop 

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