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

สำหรับคำถามเกี่ยวกับสคริปต์ที่เขียนขึ้นสำหรับเชลล์คำสั่ง Bash สำหรับเชลล์สคริปต์ที่มีข้อผิดพลาด / ข้อผิดพลาดทางไวยากรณ์โปรดตรวจสอบด้วยโปรแกรม shellcheck (หรือในเซิร์ฟเวอร์ shellcheck เว็บที่ https://shellcheck.net) ก่อนโพสต์ที่นี่ คำถามเกี่ยวกับการใช้งานอินเทอร์แอคทีฟของ Bash นั้นมีแนวโน้มที่จะอยู่ในหัวข้อของผู้ใช้ขั้นสูงมากกว่าในสแต็คโอเวอร์โฟลว์

7
ค้นหาอุปกรณ์จัดเก็บข้อมูลทั้งหมดที่เชื่อมต่อกับเครื่อง Linux [ปิด]
ปิด. คำถามนี้เป็นคำถามปิดหัวข้อ ขณะนี้ยังไม่ยอมรับคำตอบ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้เป็นหัวข้อสำหรับ Stack Overflow ปิดให้บริการใน7 ปีที่ผ่านมา ปรับปรุงคำถามนี้ ฉันมีความต้องการที่จะค้นหาอุปกรณ์จัดเก็บข้อมูลที่เขียนได้ทั้งหมดที่เชื่อมต่อกับเครื่องที่กำหนดไม่ว่าจะติดตั้งหรือไม่ก็ตาม วิธีที่น่าเบื่อในการทำเช่นนี้คือลองทุกรายการ/devที่สอดคล้องกับอุปกรณ์ที่เขียนได้ ( hd* and sd*) ...... มีวิธีแก้ปัญหาที่ดีกว่านี้หรือฉันควรใช้วิธีนี้
109 linux  bash  shell 

10
จำนวนโปรเซสเซอร์ / คอร์ในบรรทัดคำสั่ง
ฉันใช้คำสั่งต่อไปนี้เพื่อรับจำนวนโปรเซสเซอร์ / คอร์ใน Linux: cat /proc/cpuinfo | grep processor | wc -l ใช้งานได้ แต่ดูไม่หรูหรา คุณจะแนะนำให้ปรับปรุงอย่างไร
109 linux  bash  command-line 

6
มีข้อความแจ้งการโต้ตอบคำตอบสคริปต์ทุบตี [ซ้ำ]
คำถามนี้มีคำตอบอยู่แล้วที่นี่ : การส่งผ่านข้อโต้แย้งไปยังโปรแกรมโต้ตอบแบบไม่โต้ตอบ (6 คำตอบ) ปิดให้บริการใน22 วันที่ผ่านมา เป็นไปได้หรือไม่ที่สคริปต์ทุบตีจะจัดการพร้อมต์โดยอัตโนมัติซึ่งโดยปกติจะนำเสนอต่อผู้ใช้ด้วยการดำเนินการเริ่มต้น? ขณะนี้ฉันกำลังใช้สคริปต์ทุบตีเพื่อเรียกใช้เครื่องมือในตัวซึ่งจะแสดงข้อความแจ้งให้ผู้ใช้ (พร้อมท์สำหรับ Y / N) เพื่อดำเนินการให้เสร็จสิ้นอย่างไรก็ตามสคริปต์ที่ฉันเขียนจะต้อง "ลงมือทำ" อย่างสมบูรณ์ดังนั้น ฉันต้องการวิธีส่งY|Nไปยังพรอมต์เพื่อให้โปรแกรมทำงานต่อไป เป็นไปได้หรือไม่



20
Git Bash ไม่เห็นเส้นทางของฉัน
เมื่อฉันใช้ Git Bash (บน Windows) ฉันไม่สามารถเรียกใช้ไฟล์ปฏิบัติการใด ๆ โดยไม่ระบุเส้นทางแบบเต็มแม้ว่ามันจะอยู่ในโฟลเดอร์ที่อยู่ในตัวแปร PATH ของฉันก็ตาม ดูเหมือนแบชจะไม่รู้จักมัน ทำไม? จะแก้ไขได้หรือไม่?
109 windows  bash  git-bash 

5
ฉันจะค้นหาประเภท MIME (Content-Type) ของไฟล์ได้อย่างไร
มีวิธีค้นหาประเภท MIME (หรือเรียกว่า "Content-Type"?) ของไฟล์ในสคริปต์ทุบตีของ Linux หรือไม่ เหตุผลที่ฉันต้องการก็เพราะว่า ImageShack ดูเหมือนจะต้องใช้เพื่ออัปโหลดไฟล์เนื่องจากเหตุผลบางประการมันตรวจพบไฟล์. png เป็นapplication/octet-streamไฟล์ ฉันตรวจสอบไฟล์แล้วและเป็นภาพ PNG จริงๆ: $ cat /1.png ?PNG (with a heap load of random characters) สิ่งนี้ทำให้ฉันมีข้อผิดพลาด: $ curl -F "fileupload=@/1.png" http://www.imageshack.us/upload_api.php <links> <error id="wrong_file_type">Wrong file type detected for file 1.png:application/octet-stream</error> </links> ใช้งานได้ แต่ฉันต้องระบุ MIME-TYPE $ curl -F "fileupload=@/1.png;type=image/png" http://www.imageshack.us/upload_api.php

8
จะแก้ไขตัวแปรส่วนกลางภายในฟังก์ชันใน bash ได้อย่างไร?
ฉันกำลังทำงานกับสิ่งนี้: GNU bash, version 4.1.2(1)-release (x86_64-redhat-linux-gnu) ฉันมีสคริปต์ดังต่อไปนี้: #!/bin/bash e=2 function test1() { e=4 echo "hello" } test1 echo "$e" ซึ่งผลตอบแทน: hello 4 แต่ถ้าฉันกำหนดผลลัพธ์ของฟังก์ชันให้กับตัวแปรตัวแปร global eจะไม่ถูกแก้ไข: #!/bin/bash e=2 function test1() { e=4 echo "hello" } ret=$(test1) echo "$ret" echo "$e" ผลตอบแทน: hello 2 ฉันเคยได้ยินเกี่ยวกับการใช้ evalในกรณีนี้ดังนั้นฉันจึงทำสิ่งนี้ในtest1: eval 'e=4' แต่ผลเดียวกัน. ช่วยอธิบายหน่อยได้ไหมว่าทำไมจึงไม่แก้ไข ฉันจะบันทึกเสียงสะท้อนของtest1ฟังก์ชันในretและแก้ไขตัวแปรส่วนกลางด้วยได้อย่างไร

7
ฉันเพิ่งกำหนดตัวแปร แต่ตัวแปร echo $ แสดงอย่างอื่น
ต่อไปนี้เป็นชุดกรณีที่echo $varสามารถแสดงค่าที่แตกต่างจากที่เพิ่งกำหนดได้ สิ่งนี้จะเกิดขึ้นไม่ว่าค่าที่กำหนดจะเป็น "double quoted" "single quoted" หรือไม่มีเครื่องหมายคำพูด ฉันจะทำให้เชลล์ตั้งค่าตัวแปรได้อย่างถูกต้องได้อย่างไร ดอกจัน ผลลัพธ์ที่คาดหวังคือ/* Foobar is free software */แต่ฉันได้รับรายชื่อไฟล์แทน: $ var="/* Foobar is free software */" $ echo $var /bin /boot /dev /etc /home /initrd.img /lib /lib64 /media /mnt /opt /proc ... วงเล็บเหลี่ยม ค่าที่คาดหวังคือ[a-z]แต่บางครั้งฉันก็ได้อักษรตัวเดียวแทน! $ var=[a-z] $ echo $var c ฟีดบรรทัด (บรรทัดใหม่) ค่าที่คาดหวังคือรายการของบรรทัดที่แยกจากกัน …
109 bash  shell  sh  quoting 


7
วิธีดำเนินการต่อ scp ด้วยไฟล์ที่คัดลอกบางส่วน [ปิด]
ปิด. คำถามนี้ไม่เป็นไปตามหลักเกณฑ์กองมากเกิน ขณะนี้ยังไม่ยอมรับคำตอบ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้เป็นหัวข้อสำหรับ Stack Overflow ปิดให้บริการเมื่อปีที่แล้ว ปรับปรุงคำถามนี้ ฉันใช้คำสั่ง scp shell เพื่อคัดลอกโฟลเดอร์ไฟล์ขนาดใหญ่ แต่ในบางครั้งฉันต้องฆ่าคำสั่งที่กำลังทำงานอยู่ (โดย Ctrl + C หรือ kill) เพื่อความเข้าใจของฉัน scp คัดลอกไฟล์ตามลำดับดังนั้นควรมีไฟล์ที่คัดลอกเพียงบางส่วนเท่านั้น คำสั่ง scp เดียวกันจะกลับมาทำงานต่อได้อย่างไรเพื่อไม่ให้เขียนทับไฟล์ที่คัดลอกสำเร็จและจัดการไฟล์ที่คัดลอกบางส่วนอย่างถูกต้อง ปล. ฉันรู้ว่าฉันสามารถทำสิ่งประเภทนี้ใน rsync ได้ แต่ scp นั้นเร็วกว่าสำหรับฉันด้วยเหตุผลบางประการและฉันใช้มันแทน
109 bash  rsync  scp  resume 

16
วิธีตรวจสอบว่า Docker Engine และ Docker Container กำลังทำงานอยู่หรือไม่?
ในสคริปต์ฉันต้องตรวจสอบ: ก) เครื่องยนต์นักเทียบท่าทำงานอยู่หรือไม่? b) ระบุชื่อคอนเทนเนอร์ว่า Docker container กำลังทำงานอยู่หรือไม่? [ข้อความเริ่มต้นของคำถามนี้ไม่ชัดเจนโดยบางคนตีความว่าเป็น "check docker engine" และอื่น ๆ ว่า "check docker container"]
109 bash  docker 

10
ใน Unix คุณจะลบทุกอย่างในไดเร็กทอรีปัจจุบันและด้านล่างได้อย่างไร?
ฉันรู้ว่าสิ่งนี้จะลบทุกอย่างในไดเรกทอรีย่อยและด้านล่าง: rm -rf <subdir-name> แต่คุณจะลบทุกอย่างในไดเร็กทอรีปัจจุบันตลอดจนทุกไดเร็กทอรีย่อยด้านล่างและเนื้อหาของไดเร็กทอรีย่อยทั้งหมดได้อย่างไร

11
จะแสดงรายการขนาดของแต่ละไฟล์และไดเร็กทอรีและจัดเรียงตามขนาดจากมากไปหาน้อยใน Bash ได้อย่างไร?
ฉันพบว่าไม่มีวิธีง่ายๆในการหาขนาดของไดเร็กทอรีใน Bash? ฉันต้องการให้เมื่อฉันพิมพ์ls -<some options>มันสามารถแสดงรายการผลรวมของขนาดไฟล์ของไดเร็กทอรีและไฟล์ซ้ำ ๆ ในเวลาเดียวกันและจัดเรียงตามลำดับขนาด เป็นไปได้หรือไม่
108 linux  file  bash 


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