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

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

7
การขยายตัวของตัวแปรภายในเครื่องหมายคำพูดเดี่ยวในคำสั่งใน Bash
ฉันต้องการเรียกใช้คำสั่งจากสคริปต์ทุบตีซึ่งมีคำพูดเดียวและคำสั่งอื่น ๆ ที่อยู่ในคำพูดเดียวและตัวแปร เช่น repo forall -c '....$variable' ในรูปแบบนี้$จะหนีออกมาและตัวแปรจะไม่ขยาย ฉันลองใช้รูปแบบต่อไปนี้ แต่ถูกปฏิเสธ: repo forall -c '...."$variable" ' repo forall -c " '....$variable' " " repo forall -c '....$variable' " repo forall -c "'" ....$variable "'" ถ้าฉันแทนค่าแทนที่ตัวแปรคำสั่งจะถูกดำเนินการได้ดี โปรดบอกฉันว่าฉันจะไปผิดที่
393 bash  shell  variables  quotes 

6
การรันหลายคำสั่งในหนึ่งบรรทัดในเชลล์
บอกว่าฉันมีไฟล์/templates/appleและฉันต้องการ วางไว้ในสองที่แตกต่างกันแล้ว ลบต้นฉบับ ดังนั้น/templates/appleจะถูกคัดลอกไปที่/templates/usedAND /templates/inuse หลังจากนั้นฉันต้องการลบต้นฉบับ เป็นcpวิธีที่ดีที่สุดในการทำเช่นนี้ตามมาด้วยrm? หรือมีวิธีที่ดีกว่า ฉันต้องการที่จะทำมันทั้งหมดในบรรทัดเดียวดังนั้นฉันคิดว่ามันจะมีลักษณะ: cp /templates/apple /templates/used | cp /templates/apple /templates/inuse | rm /templates/apple นี่เป็นไวยากรณ์ที่ถูกต้องหรือไม่
388 bash  shell 

18
PowerShell พร้อมที่จะแทนที่ Cygwin shell ของฉันบน Windows หรือไม่ [ปิด]
ปิด คำถามนี้เป็นคำถามความคิดเห็นตาม ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้สามารถตอบข้อเท็จจริงและการอ้างอิงได้โดยแก้ไขโพสต์นี้ ปิดเมื่อปีที่แล้ว ฉันกำลังถกเถียงกันว่าฉันควรเรียนรู้ PowerShell หรือแค่ติดกับCygwin / Perl สคริปต์ / Unix shell script ฯลฯ ประโยชน์ของ PowerShell คือการที่สคริปต์สามารถใช้งานได้ง่ายขึ้นโดยเพื่อนร่วมทีมที่ไม่มี Cygwin; อย่างไรก็ตามฉันไม่รู้ว่าฉันจะเขียนบทที่มีวัตถุประสงค์ทั่วไปมากมายหรือไม่หรือถ้าคนจะใช้มัน การเขียนสคริปต์ Unix มีประสิทธิภาพมาก PowerShell เข้ามาใกล้พอที่จะรับประกันการสลับเปลี่ยนหรือไม่ นี่คือบางสิ่งที่เฉพาะเจาะจง (หรือรายการเทียบเท่า) ที่ฉันต้องการค้นหาใน PowerShell: grep ประเภท UNIQ Perl (PowerShell มาถึงขีดความสามารถของ Perl ได้ใกล้แค่ไหน) AWK sed ไฟล์ (คำสั่งที่ให้ข้อมูลไฟล์) เป็นต้น
384 unix  shell  powershell 

7
การจับภาพกลุ่มจาก Grep RegEx
ฉันมีสคริปต์เล็ก ๆ นี้ในsh(Mac OSX 10.6) เพื่อดูไฟล์ต่างๆ Google หยุดให้ความช่วยเหลือในตอนนี้: files="*.jpg" for f in $files do echo $f | grep -oEi '[0-9]+_([a-z]+)_[0-9a-z]*' name=$? echo $name done จนถึงตอนนี้ (เห็นได้ชัดว่าคุณปรมาจารย์เปลือกหอย) $nameถือเพียง 0, 1 หรือ 2 ขึ้นอยู่กับว่าgrepพบว่าชื่อไฟล์ตรงกับเรื่องที่ให้ สิ่งที่ผมต้องการคือการจับสิ่งที่อยู่ภายใน parens([a-z]+)และร้านค้าที่ให้กับตัวแปร ฉันต้องการที่จะใช้grepเพียง แต่ถ้าเป็นไปได้ ถ้าไม่โปรดอย่าใช้ Python หรือ Perl เป็นต้นsedหรืออะไรทำนองนี้ - ฉันใหม่กับเชลล์และต้องการโจมตีมันจากมุม * * * * คนเจ้าระเบียบ นอกจากนี้ในฐานะที่เป็นbonu สุดยอดฉันอยากรู้อยากเห็นว่าฉันสามารถเชื่อมสตริงในเปลือก? …
380 bash  shell  grep 

9
ออกจาก Shell Script ตามรหัสการออกจากกระบวนการ
ฉันมีเชลล์สคริปต์ที่รันคำสั่งจำนวนหนึ่ง ฉันจะทำให้เชลล์สคริปต์จบการทำงานได้อย่างไรหากคำสั่งใด ๆ ออกด้วยรหัสการออกที่ไม่ใช่ศูนย์
378 bash  shell 

7
จะรับ ID กระบวนการของกระบวนการพื้นหลังได้อย่างไร
ฉันเริ่มกระบวนการพื้นหลังจากเชลล์สคริปต์ของฉันและฉันต้องการที่จะฆ่ากระบวนการนี้เมื่อสคริปต์ของฉันเสร็จสิ้น วิธีรับ PID ของกระบวนการนี้จากเชลล์สคริปต์ของฉัน เท่าที่ฉันเห็นตัวแปร$!มี PID ของสคริปต์ปัจจุบันไม่ใช่กระบวนการพื้นหลัง

5
อะไรคือความแตกต่างระหว่าง“ #! / usr / bin / env bash” และ“ #! / usr / bin / bash”
ในส่วนหัวของสคริปต์ Bash ความแตกต่างระหว่างสองข้อความเหล่านี้คืออะไร: #!/usr/bin/env bash #!/usr/bin/bash เมื่อฉันปรึกษาenv หน้า manฉันได้คำจำกัดความนี้: env - run a program in a modified environment มันหมายความว่าอะไร?
372 linux  bash  shell  unix  shebang 

9
วัตถุประสงค์ของ“ &&” ในคำสั่งเชลล์คืออะไร
เท่าที่ฉันรู้การใช้&คำสั่งหลังจากนั้นสำหรับการรันในพื้นหลัง ตัวอย่าง&การใช้งาน:tar -czf file.tar.gz dirname & แต่จะเป็น&&อย่างไร (ดูตัวอย่างนี้: /server/215179/centos-100-disk-full-how-to-remove-log-files-history-etc#answer-215188 )


11
ฉันจะรันโปรแกรมด้วยไดเรกทอรีการทำงานที่แตกต่างจากปัจจุบันจาก Linux shell ได้อย่างไร
ใช้เปลือก Linuxฉันจะเริ่มต้นโปรแกรมด้วยไดเรกทอรีการทำงานที่แตกต่างจากไดเรกทอรีการทำงานปัจจุบันได้อย่างไร ตัวอย่างเช่นผมมีไฟล์ไบนารีhelloworldที่สร้างแฟ้มhello-world.txtในไดเรกทอรีปัจจุบัน ไฟล์นี้เป็นภายในของไดเรกทอรี /a /bขณะนี้ผมอยู่ในไดเรกทอรี ฉันต้องการที่จะเริ่มต้นโปรแกรมของฉันทำงาน../a/helloworldและได้รับที่ไหนสักแห่งในไดเรกทอรีที่สามhello-world.txt/c
352 linux  shell  environment 

18
ฉันจะฆ่ากระบวนการด้วยชื่อแทนที่จะเป็น PID ได้อย่างไร
บางครั้งเมื่อฉันพยายามเริ่ม Firefox คำว่า "กระบวนการ Firefox กำลังทำงานอยู่" ดังนั้นฉันต้องทำสิ่งนี้: jeremy@jeremy-desktop:~$ ps aux | grep firefox jeremy 7451 25.0 27.4 170536 65680 ? Sl 22:39 1:18 /usr/lib/firefox-3.0.1/firefox jeremy 7578 0.0 0.3 3004 768 pts/0 S+ 22:44 0:00 grep firefox jeremy@jeremy-desktop:~$ kill 7451 สิ่งที่ฉันต้องการคือคำสั่งที่จะทำทุกอย่างให้ฉัน มันจะใช้สตริงอินพุตและgrepมัน (หรืออะไรก็ตาม) ในรายการของกระบวนการและจะฆ่ากระบวนการทั้งหมดในผลลัพธ์: jeremy@jeremy-desktop:~$ killbyname firefox ฉันพยายามทำมันใน PHP แต่exec('ps aux')ดูเหมือนว่าจะแสดงเฉพาะกระบวนการที่ถูกดำเนินการด้วยexec()สคริปต์ …
349 linux  bash  shell 

12
มีคำสั่ง TRY CATCH ใน Bash หรือไม่
ฉันกำลังเขียนเชลล์สคริปต์และจำเป็นต้องตรวจสอบว่ามีการติดตั้งแอปเทอร์มินัล ฉันต้องการใช้คำสั่งลอง / จับเพื่อทำสิ่งนี้เว้นแต่จะมีวิธีการที่เหนือกว่า


7
ตัวอย่างของวิธีใช้ getopts ใน bash
ฉันต้องการโทรหาmyscriptไฟล์ด้วยวิธีนี้: $ ./myscript -s 45 -p any_string หรือ $ ./myscript -h #should display help $ ./myscript #should display help ความต้องการของฉันคือ: getopt ที่นี่เพื่อรับอาร์กิวเมนต์อินพุต ตรวจสอบว่า-sมีอยู่หากไม่ส่งคืนข้อผิดพลาด ตรวจสอบว่าค่าหลังจากนั้น-sคือ 45 หรือ 90 ตรวจสอบว่า-pมีอยู่และมีสตริงอินพุตหลังจาก หากผู้ใช้เข้าสู่./myscript -hหรือเพียง./myscriptแสดงความช่วยเหลือ ฉันพยายามจนถึงรหัสนี้: #!/bin/bash while getopts "h:s:" arg; do case $arg in h) echo "usage" ;; s) strength=$OPTARG echo $strength ;; esac …
345 bash  shell  getopts 

4
PHP shell_exec () vs exec ()
ฉันกำลังพยายามเข้าใจถึงความแตกต่างระหว่างshell_exec()และexec()... ฉันมักจะใช้exec()คำสั่งด้านเซิร์ฟเวอร์เสมอเมื่อไรฉันจะใช้shell_exec()? เป็นshell_exec()เพียงชื่อย่อสำหรับexec()? ดูเหมือนว่าจะเป็นสิ่งเดียวกันกับพารามิเตอร์ที่น้อยลง
345 php  shell  command  exec 

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