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

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

1
Escape double quote ใน grep
ฉันต้องการทำ grep สำหรับคำหลักที่มีเครื่องหมายคำพูดคู่อยู่ข้างใน ยกตัวอย่างง่ายๆดังนี้ echo "member":"time" | grep -e "member\"" ที่ไม่ตรงกัน จะแก้ไขได้อย่างไร?
96 linux  shell 

8
มีวิธีใช้ shell_exec โดยไม่ต้องรอให้คำสั่งเสร็จสมบูรณ์หรือไม่?
ฉันมีงานที่ต้องดำเนินการอย่างเข้มข้นซึ่งฉันต้องการทำงานอยู่เบื้องหลัง ผู้ใช้คลิกบนเพจสคริปต์ PHP จะทำงานและสุดท้ายขึ้นอยู่กับเงื่อนไขบางประการหากจำเป็นก็จะต้องเรียกใช้เชลล์สคริปต์เช่น: shell_exec('php measurePerformance.php 47 844 email@yahoo.com'); ปัจจุบันผมใช้shell_exec , แต่นี้ต้องใช้สคริปต์เพื่อรอการส่งออก มีวิธีใดบ้างที่จะเรียกใช้คำสั่งที่ฉันต้องการโดยไม่ต้องรอให้เสร็จสมบูรณ์
95 php  shell 

8
จุดเด่นของ Shell Scripting เมื่อเทียบกับ Python [ปิด]
ปิด . คำถามนี้เป็นคำถามความคิดเห็นตาม ขณะนี้ยังไม่ยอมรับคำตอบ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้สามารถตอบได้ด้วยข้อเท็จจริงและการอ้างอิงโดยแก้ไขโพสต์นี้ ปิดให้บริการใน7 ปีที่ผ่านมา ปรับปรุงคำถามนี้ ฉันพยายามเรียนรู้การเขียนสคริปต์เชลล์ (ทุบตี) สองสามครั้ง แต่ไวยากรณ์ถูกผลักดันออกไป จากนั้นฉันก็พบ Python และสามารถทำสิ่งต่างๆเกือบทั้งหมดที่เชลล์สคริปต์ทำได้ใน Python ตอนนี้ฉันไม่แน่ใจว่าควรลงทุนเวลาในการเรียนรู้เชลล์สคริปต์อีกต่อไปหรือไม่ เลยอยากถามว่า อะไรคือจุดแข็งของเชลล์สคริปต์ที่ทำให้เป็นเครื่องมือที่ขาดไม่ได้เมื่อเทียบกับ Python ฉันไม่ได้ดูแลระบบตามอาชีพ แต่ฉันสนใจที่จะตั้งค่าระบบ Linux สำหรับผู้ใช้ตามบ้านดังนั้นฉันคิดว่าการเรียนรู้เชลล์สคริปต์อาจเป็นสิ่งที่จำเป็น
95 python  shell 

9
แสดงสองไฟล์เคียงข้างกัน
ไฟล์ข้อความที่ไม่เรียงลำดับ 2 ไฟล์ที่มีความยาวต่างกันจะแสดงเคียงข้างกันได้อย่างไร(ในคอลัมน์)ในไฟล์shell ให้one.txtและtwo.txt: $ cat one.txt apple pear longer line than the last two last line $ cat two.txt The quick brown fox.. foo bar linux skipped a line แสดง: apple The quick brown fox.. pear foo longer line than the last two bar last line linux skipped a …

5
วิธีทำรัง Bash backticks อย่างถูกต้อง
ไม่ว่าฉันจะพลาดฟันเฟืองหรือแบ็กแลชบางอย่างก็ดูเหมือนจะไม่ได้ผลกับการวนซ้ำของโปรแกรมเมอร์ - ใบเสนอราคามากเกินไป $ echo "hello1-`echo hello2-\`echo hello3-\`echo hello4\`\``" hello1-hello2-hello3-echo hello4 ต้องการ hello1-hello2-hello3-hello4-hello5-hello6-...
95 bash  shell  unix  quoting 


8
'cd -' ย่อมาจากอะไร?
ใน bash shell script วันนี้ฉันสังเกตเห็นคำสั่งด้านล่างที่ส่วนท้ายของสคริปต์ ฉันรู้ว่าอะไรคืออะไรcdแต่ฉันไม่รู้ถึงความสำคัญของเส้นประหลังมัน cd - สิ่งนี้หมายความว่า? Google ตัดทอนอย่างไร้เดียงสา-ดังนั้นฉันจึงไม่สามารถหาคำตอบได้
95 linux  bash  shell 

1
แฮชบังที่เหมาะสมสำหรับสคริปต์ Node.js
ฉันกำลังพยายามสร้างสคริปต์สำหรับ node.js ที่จะทำงานในหลายสภาพแวดล้อม โดยเฉพาะอย่างยิ่งสำหรับฉันฉันกำลังสลับไปมาระหว่าง OS X และ Ubuntu ในอดีตโหนดติดตั้งเป็นแต่ในระยะหลังมันเป็นnode nodejsที่ด้านบนของสคริปต์ฉันสามารถมี: #!/usr/bin/env node หรือ #!/usr/bin/env nodejs ฉันต้องการให้สคริปต์ทำงานเป็นไฟล์ปฏิบัติการสำหรับสภาพแวดล้อมใด ๆ ตราบเท่าที่มีการติดตั้งโหนดแทนที่จะมีอย่างใดอย่างหนึ่งต้องระบุคำสั่ง ( ./script-name.jsเทียบกับnode script-name.js) มีวิธีใดในการระบุ hashbang สำรองหรืออันที่เข้ากันได้ในทั้งสองกรณีสำหรับ node.js?
95 node.js  shell  shebang 

4
Bash สามารถรันคำสั่งในบริบทไดเร็กทอรีอื่นได้อย่างไร?
ฉันมีคำสั่งทั่วไปที่เรียกจากภายในไดเร็กทอรีเฉพาะ มีเพียงไฟล์ปฏิบัติการเดียวที่อยู่ใน / bin สำหรับโปรแกรมนี้และไดเร็กทอรีการทำงานปัจจุบันมีความสำคัญมากสำหรับการรันอย่างถูกต้อง สคริปต์มีผลต่อไฟล์ที่อยู่ภายในไดเร็กทอรีที่รันอยู่ ตอนนี้ฉันยังมีเชลล์สคริปต์แบบกำหนดเองที่ทำบางสิ่งในไดเร็กทอรีเดียว แต่ฉันต้องเรียกคำสั่งนั้นที่กล่าวถึงข้างต้นราวกับว่าอยู่ในไดเร็กทอรีอื่น คุณทำสิ่งนี้ในเชลล์สคริปต์ได้อย่างไร

8
เรียกสคริปต์ Python จาก bash พร้อมอาร์กิวเมนต์
ฉันรู้ว่าฉันสามารถเรียกใช้สคริปต์ python จากสคริปต์ทุบตีของฉันโดยใช้สิ่งต่อไปนี้: python python_script.py แต่ถ้าฉันต้องการส่งผ่านตัวแปร / อาร์กิวเมนต์ไปยังสคริปต์ python จากสคริปต์ทุบตีของฉัน ฉันจะทำเช่นนั้นได้อย่างไร? โดยทั่วไป bash จะใช้ชื่อไฟล์จากนั้น python จะอัปโหลด แต่ฉันต้องส่งชื่อไฟล์จาก bash เป็น python เมื่อฉันเรียกมัน
95 python  linux  bash  shell  debian 

3
set -e และ exec“ $ @” ทำอะไรสำหรับสคริปต์จุดเริ่มต้นของนักเทียบท่า
ฉันสังเกตเห็นว่าสคริปต์ entrypoint.sh จำนวนมากสำหรับนักเทียบท่าทำสิ่งนี้: #!/bin/bash set -e ... code ... exec "$@" คืออะไรset -eและมีexec "$@"ไว้เพื่ออะไร?
95 shell  docker 

10
แทนที่สตริงในเชลล์สคริปต์โดยใช้ตัวแปร
ฉันใช้โค้ดด้านล่างเพื่อแทนที่สตริงภายในเชลล์สคริปต์ echo $LINE | sed -e 's/12345678/"$replace"/g' แต่มันถูกแทนที่ด้วย$replaceแทนค่าของตัวแปรนั้น มีใครบอกได้ไหมว่าเกิดอะไรขึ้น?
94 unix  shell  sed 

5
นามแฝง ZSH พร้อมพารามิเตอร์
ฉันกำลังพยายามสร้างนามแฝงที่มีพารามิเตอร์สำหรับคอมไพล์ง่ายๆของฉันเพิ่ม / คอมมิต / พุช ฉันเคยเห็น Function สามารถใช้เป็นนามแฝงได้ฉันจึงลอง แต่ฉันไม่ได้ทำ .. ก่อนที่ฉันจะมี: alias gitall="git add . ; git commit -m 'update' ; git push" แต่ฉันต้องการแก้ไขการกระทำของฉัน: function gitall() { "git add ." if [$1 != ""] "git commit -m $1" else "git commit -m 'update'" fi "git push" } (ฉันรู้ว่ามันเป็นการฝึกคอมไพล์ที่แย่มาก)
94 bash  shell  alias  zsh  zshrc 

13
“ ไม่มีไฟล์หรือไดเร็กทอรีดังกล่าว” แต่มีอยู่
ฉันแค่ต้องการเรียกใช้ไฟล์ปฏิบัติการจากบรรทัดคำสั่ง./arm-mingw32ce-g++แต่แล้วฉันก็ได้รับข้อความแสดงข้อผิดพลาด bash: ./arm-mingw32ce-g++: No such file or directory ฉันใช้ Ubuntu Linux 10.10 ls -lรายการ -rwxr-xr-x 1 root root 433308 2010-10-16 21:32 arm-mingw32ce-g++ การใช้ sudo ( sudo ./arm-mingw32ce-g++) ให้ sudo: unable to execute ./arm-mingw32ce-g++: No such file or directory ฉันไม่รู้ว่าทำไม OS ถึงไม่เห็นไฟล์เมื่ออยู่ที่นั่น ความคิดใด ๆ ?

6
ตรวจสอบว่าสตริงไม่ว่างหรือเว้นวรรคในเชลล์สคริปต์หรือไม่
ฉันกำลังพยายามรันเชลล์สคริปต์ต่อไปนี้ซึ่งควรจะตรวจสอบว่าสตริงไม่มีช่องว่างหรือว่างเปล่า อย่างไรก็ตามฉันได้รับเอาต์พุตเดียวกันสำหรับทั้ง 3 สตริงที่กล่าวถึง ฉันได้ลองใช้ไวยากรณ์ "[[" แล้ว แต่ก็ไม่มีประโยชน์ นี่คือรหัสของฉัน: str="Hello World" str2=" " str3="" if [ ! -z "$str" -a "$str"!=" " ]; then echo "Str is not null or space" fi if [ ! -z "$str2" -a "$str2"!=" " ]; then echo "Str2 is not null or space" fi …
94 bash  shell  freebsd 

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