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

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

7
/ dev / null 2> & 1 คืออะไร
ฉันพบรหัสชิ้นนี้ใน /etc/cron.daily/apf #!/bin/bash /etc/apf/apf -f >> /dev/null 2>&1 /etc/apf/apf -s >> /dev/null 2>&1 มันล้างและโหลดไฟร์วอลล์อีกครั้ง ฉันไม่เข้าใจ>> /dev/null 2>&1ส่วนนั้น จุดประสงค์ของการมีสิ่งนี้ใน cron คืออะไร? มันกำลังเอาชนะกฎไฟร์วอลล์ของฉัน ฉันสามารถลบงาน cron นี้ได้อย่างปลอดภัยหรือไม่


9
เทียบเท่ากับ Linux คืออะไร DOS หยุดชั่วคราว?
ฉันมีสคริปต์ Bash shell ที่ฉันต้องการหยุดการทำงานชั่วคราวจนกว่าผู้ใช้จะกดปุ่ม ใน DOS สิ่งนี้สามารถทำได้อย่างง่ายดายด้วยคำสั่ง "หยุดชั่วคราว" มีลินุกซ์เทียบเท่าที่ฉันสามารถใช้ในสคริปต์ของฉันได้หรือไม่
236 linux  bash  shell 


9
เปลี่ยนเส้นทาง COPY ของ stdout ไปยังล็อกไฟล์จากภายในสคริปต์ทุบตี
ฉันรู้วิธีเปลี่ยนเส้นทาง stdoutเป็นไฟล์: exec > foo.log echo test สิ่งนี้จะนำ 'ทดสอบ' ไปไว้ในไฟล์ foo.log ตอนนี้ฉันต้องการเปลี่ยนเส้นทางผลลัพธ์ไปยังล็อกไฟล์และเก็บไว้ที่ stdout นั่นคือสามารถทำได้เล็กน้อยจากนอกสคริปต์: script | tee foo.log แต่ฉันต้องการประกาศในสคริปต์เอง ฉันเหนื่อย exec | tee foo.log แต่มันไม่ทำงาน
235 bash  shell  redirect  logging 

6
การสร้างแฮช SHA-256 จากบรรทัดคำสั่ง Linux
ฉันรู้ว่าสตริง "foobar" สร้างแฮช SHA-256 c3ab8ff13720e8ad9047dd39466b3c8974e592c2fa383d4a3960714caef0c4f2โดยใช้ http://hash.online-convert.com/sha256-generator อย่างไรก็ตามเชลล์บรรทัดคำสั่ง: hendry@x201 ~$ echo foobar | sha256sum aec070645fe53ee3b3763059376134f058cc337247c978add178b6ccdfb0019f - สร้างแฮชอื่น ฉันพลาดอะไรไป
234 linux  shell  sha256 

5
จะไปป์ stdout ขณะที่เก็บไว้บนหน้าจอได้อย่างไร (และไม่ใช่ไฟล์เอาต์พุต)
ฉันต้องการส่งออกมาตรฐานของโปรแกรมในขณะที่เก็บไว้บนหน้าจอ ด้วยตัวอย่างง่ายๆ ( echoใช้ที่นี่เป็นเพียงภาพประกอบเท่านั้น): $ echo 'ee' | foo ee <- ผลลัพธ์ที่ฉันต้องการดู ฉันรู้ว่าทีสามารถคัดลอก stdout ไปยังไฟล์ได้ แต่นั่นไม่ใช่สิ่งที่ฉันต้องการ $ echo 'ee' | tee output.txt | foo ฉันพยายาม $ echo 'ee' | tee /dev/stdout | fooแต่มันใช้งานไม่ได้ตั้งแต่เอาท์พุททีไป/dev/stdoutเป็น pipfoo
234 bash  shell  pipe  output  stdout 

8
วิธีรันเชลล์สคริปต์ใน OS X ด้วยการดับเบิลคลิก
ฉันมีเชลล์สคริปต์ที่ได้รับอนุญาตให้ดำเนินการกับผู้ใช้ใน OS X แต่เมื่อฉันคลิกสองครั้งมันจะเปิดขึ้นในโปรแกรมแก้ไขข้อความ ฉันจะทำให้มันทำงานโดยดับเบิลคลิกได้อย่างไร

5
ฉันจะแสดงชื่อไฟล์หนึ่งชื่อต่อหนึ่งบรรทัดเอาต์พุตใน Linux ได้อย่างไร
ฉันใช้ls -aคำสั่งเพื่อรับชื่อไฟล์ในไดเรกทอรี แต่ผลลัพธ์อยู่ในบรรทัดเดียว แบบนี้: . .. .bash_history .ssh updater_error_log.txt ฉันต้องการทางเลือกในตัวเพื่อรับชื่อไฟล์แต่ละไฟล์ในบรรทัดใหม่เช่นนี้ . .. .bash_history .ssh updater_error_log.txt
229 linux  shell  ls 

3
รับ dirname / ชื่อไฟล์ล่าสุดในอาร์กิวเมนต์พา ธ ของไฟล์ใน Bash
ฉันกำลังพยายามเขียนเบ็ด post-commit สำหรับ SVN ซึ่งโฮสต์บนเซิร์ฟเวอร์การพัฒนาของเรา เป้าหมายของฉันคือพยายามตรวจสอบสำเนาของโปรเจ็กต์ที่กำหนดไปยังไดเร็กทอรีที่โฮสต์บนเซิร์ฟเวอร์โดยอัตโนมัติ อย่างไรก็ตามฉันต้องสามารถอ่านเฉพาะไดเรกทอรีสุดท้ายในสตริงไดเรกทอรีที่ส่งไปยังสคริปต์เพื่อชำระเงินไปยังไดเรกทอรีย่อยเดียวกันที่โฮสต์โครงการของเรา ตัวอย่างเช่นถ้าฉันทำ SVN ส่งมอบโครงการ "ตัวอย่าง" สคริปต์ของฉันจะได้รับ "/ usr / local / svn / repos / example" เป็นอาร์กิวเมนต์แรก ฉันต้องได้รับ "ตัวอย่าง" จากจุดสิ้นสุดของสตริงแล้วต่อกับสตริงอื่นเพื่อให้ฉันสามารถเช็คเอาต์ที่ "/ server / root / example" และดูการเปลี่ยนแปลงที่เกิดขึ้นทันที
228 linux  bash  shell  svn 

9
จะสร้างความคิดเห็นแบบหลายบรรทัดใน Bash ได้อย่างไร
ฉันเพิ่งเริ่มศึกษาเชลล์สคริปต์และฉันต้องการที่จะแสดงความคิดเห็นชุดของบรรทัดในเชลล์สคริปต์ ฉันหมายถึงชอบในกรณีของ C / Java: /* comment1 comment2 comment3 */` ฉันจะทำสิ่งนั้นได้อย่างไร

13
เชลล์สคริปต์ - ลบอัญประกาศแรกและสุดท้าย (") ออกจากตัวแปร
ด้านล่างนี้เป็นตัวอย่างของเชลล์สคริปต์จากสคริปต์ที่ใหญ่กว่า มันลบคำพูดจากสตริงที่ถือโดยตัวแปร ฉันกำลังใช้ sed แต่มีประสิทธิภาพหรือไม่ ถ้าไม่เช่นนั้นวิธีที่มีประสิทธิภาพคืออะไร? #!/bin/sh opt="\"html\\test\\\"" temp=`echo $opt | sed 's/.\(.*\)/\1/' | sed 's/\(.*\)./\1/'` echo $temp
225 string  bash  shell  unix  sed 

7
วิธีกำหนดเอาต์พุตของคำสั่งให้กับตัวแปร Makefile
ฉันจำเป็นต้องดำเนินการบางอย่างให้กฎตามเงื่อนไขเฉพาะในกรณีที่ติดตั้ง Python มากกว่ารุ่นที่แน่นอน (พูด 2.5) ฉันคิดว่าฉันสามารถทำอะไรบางอย่างเช่นการดำเนินการ: python -c 'import sys; print int(sys.version_info >= (2,5))' จากนั้นใช้เอาต์พุต ('1' ถ้าตกลง '0' เป็นอย่างอื่น) ในifeqคำสั่ง make ในเชลล์สคริปอย่างง่าย ๆ มันแค่: MY_VAR=`python -c 'import sys; print int(sys.version_info >= (2,5))'` แต่มันไม่ทำงานใน Makefile ข้อเสนอแนะใด ๆ ฉันสามารถใช้วิธีแก้ไขปัญหาอื่น ๆ ที่สมเหตุสมผลเพื่อบรรลุเป้าหมายนี้
225 shell  makefile 

5
ข้อผิดพลาด“ ผู้ประกอบการที่คาดหวังไม่พร้อม” ใน Bash หากมีเงื่อนไข
ฉันพยายามที่จะเข้าใจว่ามีอะไรผิดปกติ แต่ก็ไม่สามารถเข้าใจได้ .. นี่คือส่วนที่ดูเหมือนว่าจะได้รับข้อผิดพลาด .. elif [ $operation = "man" ]; then if [ $aug1 = "add" ]; then # <- Line 75 echo "Man Page for: add" echo "" echo "Syntax: add [number 1] [number 2]" echo "" echo "Description:" echo "Add two different numbers together." echo "" echo …
225 bash  shell 

6
ถ่ายภาพเต็มหน้าจอด้วย Firefox บนบรรทัดคำสั่ง
ฉันใช้ Firefox บน Xvfb ใน VPS สิ่งที่ฉันต้องการจะทำคือการจับภาพหน้าจอเต็มหน้าของหน้า ฉันสามารถเปลี่ยนเส้นทาง Firefox ไปยังหน้าใดหน้าหนึ่งโดยใช้ firefox http://google.com และถ่ายภาพหน้าจอ (ใน X) โดยใช้ ImageMagick import root -window output.jpg ปัญหาคือหน้าส่วนใหญ่ต้องเลื่อนและฉันไม่ทราบความสูงล่วงหน้า อีกวิธีคือเลือกความสูงที่ใหญ่มาก (เช่น 4000px) แล้วประมวลผลภาพและลบส่วนที่ไร้ประโยชน์ออก แต่นั่นเป็นการประมวลผลที่ไม่จำเป็น ฉันพบส่วนเสริมของ Firefox หลายตัว แต่ฉันกำลังมองหาโซลูชันที่สามารถตั้งโปรแกรมได้โดยใช้บรรทัดคำสั่ง Shell แก้ไข: ฉันสิ้นสุดการเขียนส่วนขยาย FireFoxของฉันเองสำหรับการทำเช่นนี้

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