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

/ bin / sh คือเชลล์ POSIX สำหรับคำถามที่การพกพาเป็นสิ่งสำคัญ หากคำถามเกี่ยวกับไฟล์. sh ให้แท็กด้วย "สคริปต์" แทน บน Ubuntu POSIX เชลล์เป็น symlink กับ "/ bin / dash` ดังนั้น [dash-shell] จึงเกี่ยวข้องกับแท็ก [sh] และอาจใช้ทั้งสองอย่างเมื่อติดแท็กคำถาม

4
อะไรคือความแตกต่างระหว่าง #! / bin / sh และ #! / bin / bash?
ถ้าฉันเขียน #!/bin/bash echo "foo" หรือ #!/bin/sh echo "foo" ทั้งสองให้ผลเหมือนกัน ผมเคยเห็นบางสคริปต์ที่เริ่มต้นด้วยหรือ#!/bin/sh #!/bin/bashมีความแตกต่างระหว่างพวกเขาหรือไม่?
280 bash  scripts  sh  shebang 

3
คำสั่ง sh -c คืออะไร?
ฉันค้นพบsh -cคำสั่ง ฉันพบมันก่อนที่จะโพสต์ที่นี่ แต่ฉันไม่สามารถหาโพสต์จาก Google ที่อธิบายได้ดังนั้นฉันอยากจะรู้ว่ามันคืออะไรและไวยากรณ์ที่สมบูรณ์ของมันคืออะไร
30 sh 

2
ความแตกต่างระหว่างไฟล์ grep apple และไฟล์ grep“ apple” คืออะไร?
ความแตกต่างระหว่างgrep apple fileและgrep "apple" fileคืออะไร? การใส่เครื่องหมายคำพูดทำอะไร? ทั้งคู่ดูเหมือนจะทำงานและทำสิ่งเดียวกัน (แสดงบรรทัดเดียวกัน)
22 bash  grep  sh 

1
$ {0% / *} ในเชลล์สคริปต์ทำอะไร
ขออภัยถ้านี่เป็นคำถามที่โง่ แต่ฉันค้นหาเกี่ยวกับมันโดยไม่ประสบความสำเร็จ บรรทัดที่สองทำหน้าที่อะไรกันแน่: #!/bin/sh cd ${0%/*} || exit 1 ฉันรู้ว่าคนแรกคือ shebang ที่พยายามที่สองที่จะเปลี่ยนไดเรกทอรี ${0%/*}แต่ส่วนที่ทำให้เกิดความสับสนคือ คุณช่วยอธิบายบรรทัดที่สองให้ฉันหน่อยได้ไหม
17 command-line  sh 

2
แก้ไขผิดพลาด `/ bin / sh '
ฉันมีสคริปต์นี้: spd-say "Hello, don't forget the trash bin." ดังนั้นมันทำให้ฉันนึกถึงสิ่งที่ฉันควรจะทำและฉันย้ายไปที่/usr/local/bin/และคำสั่งtrashออกเสียงข้อโต้แย้งจากนั้นฉันก็เริ่มงาน crontabเพื่อทำให้มันเตือนฉันทุกวันสิ่งที่ฉันต้องการจะทำ แต่crontabไม่ทำงานและฉันก็ไม่เข้าใจว่าทำไม (งานอื่นมันไม่มีที่ติ) เมื่อฉันเห็นข้อความนี้ใน terminal ของฉัน: You have new mail in /var/mail/root ในตอนท้ายของบรรทัดนี้ทำให้ฉันทำผิดพลาด: /bin/sh: 1: trash: not found ฉันรู้ว่ามันเป็นเรื่องโง่ที่ต้องทำ แต่ฉันทำ: mv /usr/local/bin/trash /bin/sh คิดว่าshเป็นไดเรกทอรีและฉันควรย้ายสคริปต์ที่นั่นเพื่อดำเนินการ ตอนนี้เมื่อฉันต้องการที่จะเห็นหน้าคนระบบพูดว่า: "สวัสดีอย่าลืมถังขยะ" และผลลัพธ์ของcat shคือ: #!/bin/bash spd-say "Hello, don't forget the trash bin. " อย่างไรก็ตามฉันสามารถทำอะไรได้หรือต้องติดตั้งระบบปฏิบัติการใหม่
16 scripts  sh 

1
คำสั่งเพื่อทำ chmod แบบเรียกซ้ำเพื่อสร้างไฟล์. sh ทั้งหมดภายในไดเร็กทอรีที่เรียกใช้งานได้หรือไม่?
กำลังพยายามทำ chmod แบบเรียกซ้ำบนไฟล์. sh ทั้งหมดในไดเร็กทอรีเพื่อให้สามารถเรียกทำงานได้

1
sh: 0: ตัวเลือกที่ผิดกฎหมาย -
เมื่อฉันพยายามเรียกใช้คำสั่งด้านล่างใน Ubuntu: sudo -n -u contd sh --login -c ". /home/contd/iib-10.0.0.5/server/bin/mqsiprofile;/home/contd/iib-10.0.0.5/common/jdk/jre/bin/java -cp $CLASSPATH:$MQSI_JREPATH//usr/share/ant/lib/ant-antlr.jar:/usr/share/ant/lib/ant-apache-bcel.jar:/usr/share/ant/lib/ant-apache-bsf.jar:/usr/share/ant/lib/ant-apache-log4j.jar:/usr/share/ant/lib/ant-apache-oro.jar:/usr/share/ant/lib/ant-apache-regexp.jar:/usr/share/ant/lib/ant-apache-resolver.jar:/usr/share/ant/lib/ant-apache-xalan2.jar:/usr/share/ant/lib/ant-commons-logging.jar:/usr/share/ant/lib/ant-commons-net.jar:/usr/share/ant/lib/ant-javamail.jar:/usr/share/ant/lib/ant-jdepend.jar:/usr/share/ant/lib/ant-jmf.jar:/usr/share/ant/lib/ant-jsch.jar:/usr/share/ant/lib/ant-junit.jar:/usr/share/ant/lib/ant-junit4.jar:/usr/share/ant/lib/ant-launcher.jar:/usr/share/ant/lib/ant-swing.jar:/usr/share/ant/lib/ant-testutil.jar:/usr/share/ant/lib/ant.jar:/usr/share/ant/lib/jsch.jar:/usr/share/ant/lib/junit.jar -Djava.ext.dirs=/home/contd/iib-10.0.0.5/common/jdk/lib:/home/contd/iib-10.0.0.5/common/jdk/jre/lib/ext -Dant.home=/usr/share/ant org.apache.tools.ant.Main -f /home/contd/AntScript/build_main.xml" ฉันได้รับข้อผิดพลาดนี้: sh: 0: Illegal option -- คำสั่งดังกล่าวควรได้รับการสนับสนุนใน Linux แต่เมื่อฉันพยายามใช้โซลูชันเดียวกัน (Ant scripting) ใน Ubuntu ฉันประสบปัญหานี้
10 command-line  sh 

4
เปลี่ยน / bin / sh ลิงก์ชั่วคราว
ฉันมีซอฟต์แวร์บางส่วนที่ต้องใช้/bin/shBash แต่สำหรับ Ubuntu ค่าเริ่มต้นคือ Dash และฉันต้องการให้เป็นค่าเริ่มต้น ฉันไม่ต้องการเปลี่ยนเป็น Bash อย่างถาวร มีวิธีการเปลี่ยนเฉพาะสำหรับเซสชันเทอร์มินัลที่กำลังทำงานอยู่หรือไม่ ดังนั้นโปรแกรมที่รันในเทอร์มินัลนี้จะเห็นการ/bin/shเชื่อมโยงกับ bash แต่ส่วนที่เหลือของระบบจะยังคงเห็น Dash หรือไม่ หรือฉันจะหลอกให้ซอฟต์แวร์ดู/bin/shเป็น Bash แม้ว่าจะไม่ใช่ ฉันไม่ได้เขียนซอฟต์แวร์นี้และการแฮ็กให้ใช้/bin/bashแทนที่จะ/bin/shเป็นตัวเลือกจริงๆ
9 command-line  bash  sh 

2
การอนุญาตถูกปฏิเสธเมื่อเรียกใช้ไฟล์ sh
ฉันพยายามใช้ไฟล์ sh เพื่อเริ่มต้นหน้าจอกับคอนโซลเซิร์ฟเวอร์ minecraft ของฉันได้อย่างง่ายดาย ฉันตั้งชื่อไฟล์นี้ว่า mc.sh ฉันมีไฟล์ sh อื่นในไดเรกทอรีเดียวกันกับ mc.sh ที่ทำงานได้ดี นี่คือสิ่งที่อยู่ใน mc.sh: screen -S minecraft java -Xms1024M -Xmx1024M -jar spigot.jar nogui นี่คือสิ่งที่อยู่ในไฟล์ sh อื่น ๆ : #!/bin/sh java -Xms512M -Xmx1024M -XX:MaxPermSize=128M -jar spigot.jar -bash: ./mc.sh: Permission deniedเกิดข้อผิดพลาดที่ฉันได้รับคือ การอนุญาตสำหรับmc.shคือ-rw-rw-r-- 1

4
วิ่งผ่านสองฉากในหนึ่งวง
ฉันพยายามที่จะทำงานผ่านสองลำดับในวงเดียวกันในเปลือกของฉันเช่นด้านล่าง: #!/bin/bash for i in (1..15) and (20..25) ; do echo $i ...... .....other process done ความคิดใดที่ฉันสามารถบรรลุสิ่งนี้
8 command-line  bash  sh 

2
ติดตั้ง TeamSpeak 3 แล้วจะไม่เปิด 14.04
ฉันติดตั้ง Ubuntu เมื่อวานนี้และฉันยังคงดิ้นรนกับบางสิ่ง แต่ฉันคุ้นเคยกับมัน ฉันต้องการติดตั้ง TeamSpeak 3 เพื่อพูดคุยกับเพื่อนของฉัน แต่ฉันไม่สามารถทำให้เหมือนคนอื่นทำบนเว็บไซต์หรือวิดีโอสอน ติดตั้งได้สำเร็จด้วย Terminal และวางไว้บนเดสก์ท็อปของฉัน ตอนนี้เมื่อฉันพยายามเรียกใช้ts3client_linux_amd64มันจะไม่โหลดขึ้นมา ฉันเห็นใน interwebz ฉันต้องเปิดts3client_runscript.shใน Terminal แต่ฉันได้รับข้อผิดพลาด: ฉันหวังว่าจะมีวิธีแก้ปัญหา
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.