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

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

9
คำสั่งในการแสดงรายการ avdnames ที่มีอยู่คืออะไร
ฉันรู้ว่าฉันสามารถเริ่มโปรแกรมจำลอง avd ได้โดยพิมพ์ emulator.exe @avdname แต่มีคำสั่งเพื่อแสดงรายการ avdnames ที่มีอยู่หรือไม่? การกำหนดค่า avd นี้เก็บไว้ที่ไหน

4
“ &” ที่ท้ายคำสั่ง linux หมายความว่าอย่างไร
ฉันเป็นผู้ดูแลระบบและถูกขอให้เรียกใช้สคริปต์ลินุกซ์เพื่อล้างระบบ คำสั่งคือ: perl script.pl > output.log & ดังนั้นคำสั่งนี้จึงลงท้ายด้วย&เครื่องหมายมีความสำคัญเป็นพิเศษหรือไม่? ฉันมีความรู้พื้นฐานเกี่ยวกับเปลือกหอย แต่ไม่เคยเห็นมาก่อน
99 linux  shell  unix 

11
grep -P ไม่ทำงานอีกต่อไป ฉันจะเขียนการค้นหาของฉันใหม่ได้อย่างไร
ดูเหมือนว่า OSX เวอร์ชันใหม่จะไม่รองรับอีกต่อไปgrep -Pและทำให้สคริปต์บางส่วนของฉันหยุดทำงาน var1=`grep -o -P '(?<=<st:italic>).*(?=</italic>)' file.txt` ฉันต้องการจับ grep เป็นตัวแปรและฉันต้องใช้การยืนยันความกว้างเป็นศูนย์เช่นเดียวกับ \K var2=`grep -P -o '(property:)\K.*\d+(?=end)' file.txt` ทางเลือกอื่น ๆ จะได้รับการชื่นชมอย่างมาก
99 macos  perl  shell 

4
การจับรหัสข้อผิดพลาดในเชลล์ไปป์
ขณะนี้ฉันมีสคริปต์ที่ทำบางอย่างเช่น ./a | ./b | ./c ฉันต้องการแก้ไขเพื่อที่ว่าถ้ามี a, b หรือ c ออกด้วยรหัสข้อผิดพลาดฉันพิมพ์ข้อความแสดงข้อผิดพลาดและหยุดแทนที่จะส่งผลลัพธ์ที่ไม่ดีไปข้างหน้า อะไรคือวิธีที่ง่ายที่สุด / สะอาดที่สุดในการทำเช่นนั้น?

9
sed Beginner: เปลี่ยนเหตุการณ์ทั้งหมดในโฟลเดอร์
ฉันต้องทำการ regex ค้นหาและแทนที่ไฟล์ทั้งหมดในโฟลเดอร์ (และโฟลเดอร์ย่อย) คำสั่ง linux shell จะทำอย่างไร ตัวอย่างเช่นฉันต้องการเรียกใช้สิ่งนี้กับไฟล์ทั้งหมดและเขียนทับไฟล์เก่าด้วยข้อความใหม่ที่แทนที่ sed 's/old text/new text/g'
98 regex  linux  shell  sed 

6
เชลล์ - เขียนเนื้อหาตัวแปรลงในไฟล์
ฉันต้องการคัดลอกเนื้อหาของตัวแปร (ในที่นี้เรียกว่าvar) ลงในไฟล์ destfileชื่อของไฟล์จะถูกเก็บไว้ในตัวแปรอื่น ฉันมีปัญหาในการดำเนินการนี้ นี่คือสิ่งที่ฉันได้ลอง: cp $var $destfile ฉันได้ลองสิ่งเดียวกันกับคำสั่ง dd ด้วย ... เห็นได้ชัดว่าเชลล์คิดว่า$varอ้างถึงไดเร็กทอรีจึงบอกฉันว่าไม่พบไดเร็กทอรี ฉันจะหลีกเลี่ยงสิ่งนี้ได้อย่างไร?
98 linux  bash  shell 

6
วิธีที่ง่ายที่สุดในการลบเครื่องหมายทับจากแต่ละพารามิเตอร์คืออะไร
วิธีที่ง่ายที่สุดในการลบเครื่องหมายทับจากแต่ละพารามิเตอร์ในอาร์เรย์ '$ @' เพื่อrsyncคัดลอกไดเรกทอรีตามชื่อคืออะไร rsync -a --exclude='*~' "$@" "$dir" มีการเปลี่ยนชื่อเรื่องเพื่อความกระจ่าง หากต้องการทำความเข้าใจความคิดเห็นและคำตอบเกี่ยวกับเครื่องหมายทับหลายตัวให้ดูประวัติการแก้ไข

8
ในขณะที่วนซ้ำเพื่อทดสอบว่ามีไฟล์อยู่ใน bash หรือไม่
ฉันกำลังทำงานกับเชลล์สคริปต์ที่ทำการเปลี่ยนแปลงบางอย่างในไฟล์ txt เฉพาะในกรณีที่มีอยู่อย่างไรก็ตามลูปทดสอบนี้ใช้ไม่ได้ฉันสงสัยว่าทำไม? ขอบคุณ! while [ ! -f /tmp/list.txt ] ; do sleep 2 done
97 bash  shell 

4
อ้างถึงไฟล์ที่สัมพันธ์กับการเรียกใช้สคริปต์
ในสคริปต์ทุบตีที่ฉันเขียนฉันใช้sourceเพื่อรวมตัวแปรที่กำหนดไว้ในไฟล์คอนฟิกูเรชัน สคริปต์ที่จะดำเนินการคือact.shในขณะที่สคริปต์ที่จะsourced เป็นact.conf.shดังนั้นในact.shฉันมี: source act.conf.sh อย่างไรก็ตามสิ่งนี้ใช้ได้เฉพาะเมื่อทำงานact.shในไดเร็กทอรีที่มีอยู่เนื่องจากact.conf.shมีการอ้างถึงไฟล์ที่อยู่ภายใต้ไดเร็กทอรีการทำงาน มีวิธีแก้ไขให้อ้างถึงไฟล์ที่สัมพันธ์กับสคริปต์การเรียกใช้งานโดยไม่ต้องเรียกใช้cdหรือไม่? ขอบคุณ.
97 bash  shell 

10
การตรวจสอบพารามิเตอร์กับสคริปต์ Bash
ฉันคิดขั้นพื้นฐานเพื่อช่วยให้กระบวนการลบโฟลเดอร์จำนวนหนึ่งเป็นไปโดยอัตโนมัติเมื่อไม่จำเป็น #!/bin/bash rm -rf ~/myfolder1/$1/anotherfolder rm -rf ~/myfolder2/$1/yetanotherfolder rm -rf ~/myfolder3/$1/thisisafolder สิ่งนี้เกิดขึ้นเช่นนี้: ./myscript.sh <{id-number}> ปัญหาคือถ้าคุณลืมพิมพ์id-number (อย่างที่เคยทำไปแล้ว)มันอาจจะลบหลาย ๆ อย่างที่คุณไม่ต้องการให้ลบออกไป มีวิธีเพิ่มการตรวจสอบความถูกต้องให้กับพารามิเตอร์บรรทัดคำสั่งหรือไม่? ในกรณีของฉันควรตรวจสอบว่า a) มีพารามิเตอร์หนึ่งตัว b) เป็นตัวเลขและ c) มีโฟลเดอร์นั้นอยู่ ก่อนดำเนินการต่อด้วยสคริปต์
97 validation  bash  shell 

3
ฉันจะไพพ์การเรียกกระบวนการย่อยไปยังไฟล์ข้อความได้อย่างไร
subprocess.call(["/home/myuser/run.sh", "/tmp/ad_xml", "/tmp/video_xml"]) ตอนนี้ฉันมีสคริปต์ที่ฉันเรียกใช้ เมื่อฉันเรียกใช้และมันมาถึงบรรทัดนี้มันจะเริ่มพิมพ์สิ่งต่างๆเพราะ run.sh มีการพิมพ์อยู่ในนั้น ฉันจะไพพ์สิ่งนี้ไปยังไฟล์ข้อความได้อย่างไร (และพิมพ์ด้วยถ้าเป็นไปได้)

2
รับบรรทัดแรกของผลลัพธ์ของคำสั่งเชลล์
ในขณะที่พยายามอ่านหมายเลขเวอร์ชันvimฉันได้รับบรรทัดเพิ่มเติมมากมายที่ฉันต้องเพิกเฉย ฉันพยายามอ่านคู่มือheadและลองใช้คำสั่งต่อไปนี้: vim --version | head -n 1 ฉันต้องการทราบว่านี่เป็นแนวทางที่ถูกต้องหรือไม่?
96 linux  bash  shell 

7
ฉันจะเปลี่ยนทิศทางผลลัพธ์ของคำสั่ง“ เวลา” ได้อย่างไร
ฉันพยายามเปลี่ยนทิศทางผลลัพธ์ของคำสั่งเวลา แต่ไม่สามารถ: $time ls > filename real 0m0.000s user 0m0.000s sys 0m0.000s ในไฟล์ฉันเห็นผลลัพธ์ของlsคำสั่งไม่ใช่ของtime. โปรดอธิบายว่าทำไมฉันถึงทำไม่ได้และทำอย่างไร

5
Bash set + x โดยไม่ต้องพิมพ์
มีใครรู้บ้างว่าเราสามารถพูดได้set +xโดยไม่ต้องพิมพ์: set -x command set +x ร่องรอย + command + set +x แต่ควรพิมพ์ + command Bash คือเวอร์ชัน 4.1.10 (4) นี่เป็นปัญหาของฉันมาระยะหนึ่งแล้ว - เอาต์พุตเต็มไปด้วยset +xเส้นที่ไร้ประโยชน์ทำให้เครื่องมือติดตามไม่เป็นประโยชน์เท่าที่ควร
96 bash  shell 

11
แก้ไขเชลล์สคริปต์ขณะทำงาน
คุณสามารถแก้ไขเชลล์สคริปต์ในขณะที่กำลังทำงานอยู่และการเปลี่ยนแปลงมีผลกับสคริปต์ที่รันอยู่ได้หรือไม่ ฉันอยากรู้เกี่ยวกับกรณีเฉพาะของสคริปต์ csh ที่ฉันมีแบตช์นั้นมีรสชาติการสร้างที่แตกต่างกันมากมายและทำงานตลอดทั้งคืน หากมีบางอย่างเกิดขึ้นกับฉันระหว่างการดำเนินการฉันต้องการเข้าไปและเพิ่มคำสั่งเพิ่มเติมหรือแสดงความคิดเห็นเกี่ยวกับคำสั่งที่ยังไม่ได้ดำเนินการ ถ้าเป็นไปไม่ได้มีเชลล์หรือชุดกลไกที่อนุญาตให้ฉันทำสิ่งนี้หรือไม่? แน่นอนฉันได้ลองใช้แล้ว แต่จะต้องใช้เวลาหลายชั่วโมงก่อนที่ฉันจะดูว่ามันใช้งานได้หรือไม่และฉันก็สงสัยว่าเกิดอะไรขึ้นหรือไม่เกิดขึ้นเบื้องหลัง
96 linux  shell  csh 

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