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

คำว่า 'เชลล์' หมายถึงคลาสทั่วไปของล่ามคำสั่งแบบโต้ตอบตามข้อความซึ่งส่วนใหญ่มักเกี่ยวข้องกับระบบปฏิบัติการ Unix & Linux สำหรับคำถามเกี่ยวกับการเขียนสคริปต์เชลล์โปรดใช้แท็กเฉพาะเพิ่มเติมเช่น 'bash', 'powershell' หรือ 'ksh' หากไม่มีแท็กเฉพาะควรใช้วิธีแก้ปัญหาแบบพกพา (POSIX-compliant) แม้ว่าจะใช้ 'posix' เพิ่มเติมหรือ '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 


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

24
ฉันจะกลับลำดับของบรรทัดในไฟล์ได้อย่างไร
ฉันต้องการย้อนกลับลำดับของบรรทัดในไฟล์ข้อความ (หรือ stdin) รักษาเนื้อหาของแต่ละบรรทัด ดังนั้นคือเริ่มต้นด้วย: foo bar baz ฉันต้องการที่จะจบลงด้วย baz bar foo มียูทิลิตี commandline UNIX มาตรฐานสำหรับสิ่งนี้หรือไม่?
641 shell  unix  command-line 

24
วิธีการตรวจสอบเปลือกปัจจุบันฉันกำลังทำงาน
ฉันจะกำหนดเชลล์ปัจจุบันที่ฉันกำลังใช้งานได้อย่างไร ผลลัพธ์ของpsคำสั่งเพียงอย่างเดียวจะเพียงพอหรือไม่ สิ่งนี้สามารถทำได้ใน Unix รสชาติที่แตกต่างกันอย่างไร
633 bash  unix  shell  csh  tcsh 

24
ตรวจสอบว่าต้องการแรงดึงใน Git หรือไม่
ฉันจะตรวจสอบว่าที่เก็บระยะไกลมีการเปลี่ยนแปลงและฉันต้องดึงได้อย่างไร ตอนนี้ฉันใช้สคริปต์ง่ายๆนี้: git pull --dry-run | grep -q -v 'Already up-to-date.' && changed=1 แต่มันค่อนข้างหนัก มีวิธีที่ดีกว่า? ทางออกที่ดีที่สุดจะตรวจสอบสาขาระยะไกลทั้งหมดและส่งคืนชื่อของสาขาที่เปลี่ยนแปลงและจำนวนการกระทำใหม่ในแต่ละสาขา
622 git  bash  shell 

23
ฉันจะรู้ชื่อไฟล์สคริปต์ในสคริปต์ Bash ได้อย่างไร
ฉันจะกำหนดชื่อของไฟล์สคริปต์ Bash ภายในสคริปต์ได้อย่างไร เช่นถ้าสคริปต์ของฉันอยู่ในไฟล์runme.shฉันจะทำให้มันแสดงข้อความ "คุณกำลังเรียกใช้ runme.sh" ได้อย่างไรโดยไม่ต้องใช้ hardcoding
605 linux  bash  shell  scripting 

13
ค้นหาและแทนที่ไฟล์และไฟล์เขียนทับไม่ทำงาน แต่จะลบไฟล์
ฉันต้องการเรียกใช้ค้นหาและแทนที่ไฟล์ HTML ผ่านบรรทัดคำสั่ง คำสั่งของฉันมีลักษณะเช่นนี้: sed -e s/STRING_TO_REPLACE/STRING_TO_REPLACE_IT/g index.html > index.html เมื่อฉันเรียกใช้และดูไฟล์ในภายหลังมันว่างเปล่า มันลบเนื้อหาของไฟล์ของฉัน เมื่อฉันเรียกใช้หลังจากเรียกคืนไฟล์อีกครั้ง: sed -e s/STRING_TO_REPLACE/STRING_TO_REPLACE_IT/g index.html stdoutเป็นเนื้อหาของแฟ้มและค้นหาและแทนที่ได้รับการดำเนินการ ทำไมสิ่งนี้จึงเกิดขึ้น

19
เครื่องมือทุบตีเพื่อรับบรรทัดที่ n จากไฟล์
มีวิธี "แบบบัญญัติ" หรือไม่? ฉันใช้head -n | tail -1ซึ่งทำเคล็ดลับ แต่ฉันสงสัยว่ามีเครื่องมือทุบตีที่แยกเส้น (หรือช่วงบรรทัด) จากไฟล์ โดย "canonical" ฉันหมายถึงโปรแกรมที่มีหน้าที่หลักทำเช่นนั้น
604 bash  shell  unix  awk  sed 

30
ฉันจะทดสอบว่าตัวแปรเป็นตัวเลขใน Bash ได้อย่างไร
ฉันไม่สามารถทราบได้ว่าฉันจะแน่ใจได้อย่างไรว่าข้อโต้แย้งที่ส่งผ่านไปยังสคริปต์ของฉันนั้นเป็นตัวเลขหรือไม่ สิ่งที่ฉันอยากทำคือสิ่งนี้: test *isnumber* $1 && VAR=$1 || echo "need a number" ความช่วยเหลือใด ๆ
599 linux  bash  shell 

14
sudo echo“ something” >> / etc / privilegedFile ไม่ทำงาน
นี่เป็นคำถามที่ค่อนข้างง่ายอย่างน้อยก็น่าจะเป็นไปได้เกี่ยวกับการอนุญาต sudo ใน Linux มีหลายครั้งที่ฉันแค่อยากจะต่อท้าย/etc/hostsไฟล์หรือไฟล์ที่คล้ายกัน แต่ท้ายที่สุดก็ไม่สามารถทำได้เพราะทั้งคู่>และ>>ไม่ได้รับอนุญาตแม้แต่กับรูท มีบางประการเพื่อให้งานนี้ได้โดยไม่ต้องsuหรือsudo suเข้าสู่ราก?

13
การใช้ wget เพื่อเรียกไดเรกทอรีซ้ำด้วยไฟล์ที่กำหนดเอง
ฉันมีสารบบเว็บที่ฉันเก็บไฟล์ปรับแต่งบางอย่าง ฉันต้องการใช้ wget เพื่อดึงไฟล์เหล่านั้นลงและบำรุงรักษาโครงสร้างปัจจุบันของพวกเขา ตัวอย่างเช่นไดเรกทอรีระยะไกลดูเหมือนว่า: http://mysite.com/configs/.vim/ .vim เก็บหลายไฟล์และไดเรกทอรี ฉันต้องการที่จะทำซ้ำที่ลูกค้าใช้ wget ดูเหมือนจะไม่พบคำสั่งผสมที่ถูกต้องของธง wget ที่จะทำสิ่งนี้ ความคิดใด ๆ
573 shell  wget 


8
เปรียบเทียบตัวเลขใน Bash
ฉันเริ่มเรียนรู้เกี่ยวกับการเขียนสคริปต์สำหรับเทอร์มินัล bash แต่ฉันไม่สามารถหาวิธีการเปรียบเทียบเพื่อให้ทำงานได้อย่างถูกต้อง สคริปต์ที่ฉันใช้คือ: echo "enter two numbers"; read a b; echo "a=$a"; echo "b=$b"; if [ $a \> $b ]; then echo "a is greater than b"; else echo "b is greater than a"; fi; ปัญหาคือว่ามันเปรียบเทียบตัวเลขจากตัวเลขหลักแรกคือ 9 คือมากกว่า 10 แต่ 1 มากกว่า 09 ฉันจะแปลงตัวเลขเป็นประเภทเพื่อทำการเปรียบเทียบจริงได้อย่างไร
546 bash  shell  numeric 

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