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

คำถามเฉพาะของ Bourne อีกครั้งของเชลล์ใน GNU เมื่อเทียบกับเชลล์ Bourne / POSIX อื่น ๆ สำหรับคำถามเกี่ยวกับเชลล์ Unix โดยทั่วไปให้ใช้ / เชลล์แท็กแทน

10
ดำเนินการคำสั่งหนึ่งครั้งต่อหนึ่งบรรทัดอินพุตที่ไพพ์หรือไม่?
ls | grep pattern -ฉันต้องการที่จะเรียกใช้คำสั่งภาษาจาวาละครั้งสำหรับการแข่งขันของทุก ในกรณีนี้ฉันคิดว่าฉันสามารถทำได้find pattern -exec java MyProg '{}' \;แต่ฉันอยากรู้เกี่ยวกับกรณีทั่วไป - มีวิธีที่ง่ายที่จะพูดว่า "เรียกใช้คำสั่งหนึ่งครั้งสำหรับอินพุตมาตรฐานทุกบรรทัด" หรือไม่ (ในปลาหรือทุบตี)
162 bash  shell  fish 

2
มีงานที่หยุด (เมื่อ bash exit)
ฉันได้รับข้อความThere are stopped jobs.เมื่อพยายามออกจาก bash shell บางครั้ง นี่เป็นสถานการณ์จำลองที่ทำซ้ำได้ใน python 2.x: ctrl+ cได้รับการจัดการโดยล่ามเป็นข้อยกเว้น ctrl+ z'หยุด' กระบวนการ ctrl+ dออกจาก python สำหรับ reals นี่คือเอาต์พุตเทอร์มินัลในโลกแห่งความจริง: example_user@example_server:~$ python Python 2.7.3 (default, Sep 26 2013, 20:03:06) [GCC 4.6.3] on linux2 Type "help", "copyright", "credits" or "license" for more information. >>> ctrl+z [1]+ Stopped python example_user@example_server:~$ exit …
157 bash  shell  process 

9
จะทราบได้อย่างไรว่าตัวแปรสภาพแวดล้อมมาจากที่ใด
ฉันมีอินสแตนซ์ลินุกซ์ที่ฉันตั้งค่าบางเวลามา เมื่อฉันเปิดใช้งานและลงชื่อเข้าใช้เนื่องจากrootมีตัวแปรสภาพแวดล้อมบางอย่างที่ฉันตั้งค่า แต่ฉันจำไม่ได้หรือไม่ทราบว่ามาจากไหน ฉันได้ตรวจสอบ~/.bash_profileแล้ว/etc/.bash_rcและสคริปต์เริ่มต้นทั้งหมด ฉันวิ่งfindและgrepไม่มีประโยชน์ ฉันรู้สึกเหมือนฉันต้องลืมที่จะมองในบางสถานที่ที่ชัดเจน มีเคล็ดลับในการหาสิ่งนี้หรือไม่?

10
มีซับในเดียวที่อนุญาตให้ฉันสร้างไดเรคทอรีและย้ายไปยังไดเรกตอรีในเวลาเดียวกันได้หรือไม่?
ฉันพบว่าตัวเองกำลังทำซ้ำจำนวนมาก: mkdir longtitleproject cd longtitleproject มีวิธีการทำในหนึ่งบรรทัดโดยไม่ต้องทำซ้ำชื่อไดเรกทอรีหรือไม่? ฉันทุบตีที่นี่
150 bash  shell  command-line 

14
ไฟล์การเปลี่ยนชื่อแบทช์
ฉันมีไดเรกทอรีที่เต็มไปด้วยภาพ: image0001.png image0002.png image0003.png ... และฉันต้องการหนึ่งสายการบินเพื่อเปลี่ยนชื่อพวกเขาเป็น (พูด) 0001.png 0002.png 0003.png ... ฉันจะทำสิ่งนี้ได้อย่างไร
150 shell  bash  rename 

1
Bash:“> |” ทำอะไร
ฉันเพิ่งเห็นสิ่งนี้ถูกเขียนลงไป; $ some-command >| /tmp/output.txt ไปป์แนวตั้งถูกใช้ในการเปลี่ยนเส้นทางมาตรฐาน "piping" เอาต์พุตของคำสั่งหนึ่งไปยังอีกคำสั่ง>|ในความเป็นจริงแล้วมันไร้ประโยชน์อย่างสมบูรณ์เพราะมันจะเหมือนกับ>ในสถานการณ์นี้ใช่ไหม?

2
วิธีหยุดชั่วคราวและดำเนินกระบวนการต่อ
ใน bash เทอร์มินัลฉันสามารถกดControl+ Zเพื่อหยุดกระบวนการทำงานใด ๆ ... จากนั้นฉันสามารถพิมพ์fgเพื่อดำเนินการกระบวนการต่อ เป็นไปได้หรือไม่ที่จะระงับกระบวนการหากฉันมี PID เท่านั้น และถ้าเป็นเช่นนั้นฉันควรใช้คำสั่งอะไร ฉันกำลังมองหาสิ่งที่ชอบ: suspend-process $PID_OF_PROCESS แล้วจึงกลับมาทำงานอีกครั้งด้วย resume-process $PID_OF_PROCESS



8
วิธีการดีบักสคริปต์ทุบตี?
ฉันมีปัญหากับสคริปต์บางอย่างในทุบตีเกี่ยวกับข้อผิดพลาดและพฤติกรรมที่ไม่คาดคิด ฉันต้องการตรวจสอบสาเหตุของปัญหาเพื่อให้สามารถใช้การแก้ไขได้ มีวิธีที่ฉันสามารถเปิด "debug-mode" บางชนิดเพื่อทุบตีเพื่อรับข้อมูลเพิ่มเติมหรือไม่
135 bash  debugging 

5
ฉันสามารถใช้รหัสสีใดในการแจ้งเตือน PS1 ของฉัน
ฉันใช้หลายสีในพรอมต์ PS1 ของฉันเช่น \033]01;31\] # pink \033]00m\] # white \033]01;36\] # bold green \033]02;36\] # green \033]01;34\] # blue \033]01;33\] # bold yellow ฉันจะหารายการรหัสสีที่ฉันสามารถใช้ได้ที่ไหน ฉันดูColorize Bash Console Colorแต่ไม่ได้ตอบคำถามของฉันเกี่ยวกับรายการรหัสจริง มันจะดีถ้ามีรูปแบบที่อ่านได้มากขึ้นด้วย ดูเพิ่มเติมที่https://unix.stackexchange.com/a/127800/10043
132 bash  colors  prompt 

1
ในสคริปต์ทุบตีใช้เงื่อนไข“ หรือ” ในคำสั่ง“ ถ้า”
คำถามนี้เป็นผลสืบเนื่องของแปลกไปของฉันคำถามก่อนหน้านี้ ผู้ใช้ในเว็บไซต์นี้ช่วยฉันในการกำหนดวิธีการเขียน bash forloop ที่วนซ้ำค่าสตริง ตัวอย่างเช่นสมมติว่าการควบคุมวงตัวแปรfnameiterates "a.txt" "b.txt" "c.txt"มากกว่าสตริง ฉันต้องการที่จะecho"ใช่!" เมื่อfnameมีค่า"a.txt"หรือ"c.txt"และecho"ไม่!" มิฉะนั้น. ฉันได้ลอง bash shell script แล้ว: #!/bin/bash for fname in "a.txt" "b.txt" "c.txt" do echo $fname if [ "$fname" = "a.txt" ] | [ "$fname" = "c.txt" ]; then echo "yes!" else echo "no!" fi done ฉันได้รับผลลัพธ์: a.txt ไม่! …
128 bash  shell-script 

3
การอ้างอิงภายใน $ (การทดแทนคำสั่ง) ใน Bash
ในสภาพแวดล้อม Bash ของฉันฉันใช้ตัวแปรที่มีช่องว่างและฉันใช้ตัวแปรเหล่านี้ภายในการทดแทนคำสั่ง น่าเสียดายที่ฉันไม่พบคำตอบใน SE วิธีที่ถูกต้องในการอ้างอิงตัวแปรของฉันคืออะไร? และฉันควรทำอย่างไรถ้าสิ่งเหล่านี้ซ้อนอยู่? DIRNAME=$(dirname "$FILE") หรือฉันจะพูดนอกทดแทน? DIRNAME="$(dirname $FILE)" หรือทั้งคู่? DIRNAME="$(dirname "$FILE")" หรือฉันจะใช้เห็บกลับ? DIRNAME=`dirname "$FILE"` วิธีที่ถูกต้องในการทำเช่นนี้คืออะไร? และฉันจะตรวจสอบได้อย่างง่ายดายว่าราคาถูกต้องหรือไม่

4
ความสำคัญของตัวดำเนินการเชิงตรรกะของเชลล์ &&, ||
ฉันพยายามที่จะเข้าใจว่าการทำงานของตัวดำเนินการทางตรรกะในการทุบตี ตัวอย่างเช่นฉันคาดว่าคำสั่งต่อไปนี้ไม่ได้สะท้อนอะไรเลย true || echo aaa && echo bbb อย่างไรก็ตามตรงกันข้ามกับความคาดหวังของฉันbbbได้รับการพิมพ์ ใครช่วยอธิบายหน่อยได้ไหมฉันจะทำให้รู้สึกถึงการทบต้น&&และ||ผู้ปฏิบัติงานในการทุบตีได้อย่างไร?
126 bash  shell 

5
จะเป็นตัวพิมพ์ใหญ่ของอาร์กิวเมนต์บรรทัดคำสั่งได้อย่างไร
ฉันค้นหาดังนั้นและพบว่าการใช้ตัวพิมพ์ใหญ่สตริงต่อไปนี้จะใช้งานได้ str="Some string" echo ${str^^} แต่ฉันพยายามทำสิ่งที่คล้ายกันในอาร์กิวเมนต์บรรทัดคำสั่งซึ่งทำให้ฉันมีข้อผิดพลาดดังต่อไปนี้ พยายาม #!/bin/bash ## Output echo ${1^^} ## line 3: ${1^^}: bad substitution echo {$1^^} ## No error, but output was still smaller case i.e. no effect เราจะทำสิ่งนี้ได้อย่างไร

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