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

คำถามเฉพาะของ Bourne อีกครั้งของเชลล์ใน GNU เมื่อเทียบกับเชลล์ Bourne / POSIX อื่น ๆ สำหรับคำถามเกี่ยวกับเชลล์ Unix โดยทั่วไปให้ใช้ / เชลล์แท็กแทน

1
ls ทุกอย่างที่เป็น _not_ symlink
lsมีวิธีแสดงเงื่อนไขที่ไม่พึงประสงค์เช่น "ไฟล์ทั้งหมดที่ไม่ใช่ symlink" หรือไม่? ฉันใช้อันหลังจำนวนมากในไดเรกทอรีโครงการ แต่ข้อเสียอื่น ๆ ก็มีประโยชน์เช่นกัน สำหรับตอนนี้การวิจัยของฉันนำไปสู่การสร้างนามแฝงกับบางสิ่งที่ "ชอบ": find . -maxdepth 1 ! -type l | sort # (...) แต่แน่นอนด้วยวิธีนี้ฉันไม่ได้รับการระบายสีlsการจัดรูปแบบคอลัมน์ ฯลฯ ... ฉันใช้ Bash v3 ใน OS X 10.8.2 และ Bash v4 บน Pangolin บางครั้ง
12 bash  ls 

4
คัดลอกไฟล์เดียวไปยังหลายไดเรกทอรีโดยใช้ cp
คำถามนี้เป็นผลสืบเนื่องของทุกคำถามก่อนหน้านี้ฉันสร้างไดเรกทอรีต่าง ๆ mkdirนานาโดยใช้ ฉันกำลังใช้bashเปลือก ฉันสร้างไดเรกทอรีห้าสิบรายการโดยเริ่มต้นด้วยคำนำหน้า "s" โดยใช้คำสั่ง: mkdir $(printf "s%02i " $(seq 1 50)) ซึ่งใช้ตัวเลขเป็นศูนย์ที่สองพร้อมเลขศูนย์ นั่นคือไดเรกทอรีที่ผมได้รับเป็นของแบบฟอร์มs01, ,s02 ... ,s49s50 ตอนนี้ฉันต้องการใช้cpเพื่อคัดลอกไฟล์เดียว (ตัวอย่างtest.txt) ไปยังแต่ละไดเรกทอรีห้าสิบ เป็นไปได้ไหมที่จะทำสิ่งนี้ในลักษณะที่คล้ายคลึงกับที่กล่าวมา ตัวอย่างเช่นงานต่อไปนี้จะทำงานอย่างไร ฉันค่อนข้างใหม่กับ Unix / Linux ดังนั้นฉันจึงไม่ต้องการลองนี้จนกว่าจะมีคนโปรดให้ฉันบ่งบอกว่ามันปลอดภัย cp test.txt $ (printf "s% 02i.txt" $ (seq 1 50)) มองไปที่manหน้าcpนั้นดูเหมือนจะไม่cpรองรับหลายปลายทางเช่นนี้อย่างไรก็ตาม: NAME cp - copy files and directories SYNOPSIS cp [OPTION]... …
12 bash  shell  cp 

3
หลายตัวแปรสำหรับลูป
มีวิธีการระบุตัวแปรหลายตัว (ไม่ใช่แค่จำนวนเต็ม) ในการforวนซ้ำbashหรือไม่? ฉันอาจมี 2 ไฟล์ที่มีข้อความใด ๆ ที่ฉันต้องทำงานด้วย สิ่งที่ฉันต้องการตามหน้าที่คืออะไร: for i in $(cat file1) and j in $(cat file2); do command $i $j; done ความคิดใด ๆ


4
ลบไฟล์ในช่วงขนาดที่แน่นอน
ฉันต้องการลบไฟล์ที่มีขนาดอยู่ระหว่างค่าที่แน่นอน ตัวอย่างเช่นฉันมีรายการไฟล์ต่อไปนี้: -rw-r--r-- 1 smsc sys 558 Apr 30 13:07 stats.sfe.1.20120430130513.xml.Z -rw-r--r-- 1 smsc sys 388 Apr 30 15:32 stats.sfe.1.20120430153013.xml.Z -rw-r--r-- 1 smsc sys 386 Apr 30 15:36 stats.sfe.1.20120430153513.xml.Z -rw-r--r-- 1 smsc sys 389 Apr 30 15:42 stats.sfe.1.20120430154013.xml.Z -rw-r--r-- 1 smsc sys 390 Apr 30 16:02 stats.sfe.1.20120430160013.xml.Z -rw-r--r-- 1 smsc …
12 bash  find  size 

3
เป็นไปได้ไหมที่จะเปลี่ยนลำดับของก้อนกลม?
ฉันกำลังพยายามแสดงข้อความทั้งหมดจากข้อความ syslog ตามลำดับเวลาโดยทำสิ่งต่อไปนี้ grep squiggle /var/log/messages* น่าเสียดายที่รูปแบบ glob ตรงกับไฟล์ที่ใช้งานในปัจจุบันก่อน เช่น. /var/log/messages /var/log/messages-20120220 /var/log/messages-20120227 /var/log/messages-20120305 /var/log/messages-20120312 ซึ่งหมายความว่าข้อความล่าสุดจะปรากฏขึ้นก่อนตามด้วยข้อความประวัติศาสตร์ตามลำดับเวลา เป็นไปได้หรือไม่ที่จะปรับพฤติกรรมรูปแบบแบบกลมเพื่อทำการจับคู่ที่ว่างเปล่า (เช่นเพิ่งmessages) ปรากฏที่ส่วนท้ายของรายการหรือไม่ หากไม่เป็นเช่นนั้นจะเป็นวิธีที่ดีในการแก้ไขปัญหานี้อย่างไร
12 bash  wildcards 

2
ทางเลือกในการรับชมซึ่งสนับสนุนสี
ฉันมีคำสั่ง ( phpunit) ซึ่งมีเอาต์พุตสี ตามwatchคำสั่งฉันควรจะสามารถใช้--colorธงเพื่อให้การแสดงผลสีผ่าน อย่างไรก็ตามสิ่งนี้ไม่ทำงาน มีวิธีอื่นในการแก้ปัญหานี้หรือไม่?
12 bash  utilities  watch 

3
การแยกการอ้างอิงชื่อตัวแปร
ฉันสามารถทำสิ่งนี้ได้ แต่มันต้องมีการสร้างสตริงของตัวแปรแล้วทำการพิจารณาอีกครั้ง มีวิธีการย่อให้สั้นลงในคำสั่งที่ง่ายขึ้น #!/bin/bash FRUITS="BANANA APPLE ORANGE" BANANA_COLOUR="Yellow" APPLE_COLOUR="Green or Red" ORANGE_COLOUR="Blue" for fruit in $( echo $FRUITS ); do fruit_colour="${fruit}_COLOUR" echo $fruit is ${!fruit_colour} done ฉันได้ลองหลายสิ่งหลายอย่างเช่น${!"${fruit}_COLOUR"}หรือ\$${fruit}_COLOURตัวแปรอื่น ๆ อีกมากมาย แต่วิธีเดียวที่ทำงานได้คือการใช้สตริง

1
ทำการแมป Ctrl-l ในการทุบตี
หนึ่งสามารถ remap Ctrl- lในทุบตีในการดำเนินการมากกว่าเพียงแค่ล้าง? ฉันรู้ว่าปกติมันแค่ล้างหน้าจอ ฉันต้องการเปลี่ยนสิ่งนั้นเพื่อล้างหน้าจอและรายการสิ่งที่ฉันpwdชอบ: Ctrl- l:clear;ls;

1
เหตุใดเวลาทุบตีจึงแม่นยำมากขึ้นตามเวลา GNU
คำสั่ง buitin bash timeให้ความแม่นยำในการประมวลผลเป็นมิลลิวินาทีและ GNU time(ปกติ / usr / bin / เวลา) ให้ความแม่นยำเป็นมิลลิวินาที times(2)syscall ให้ครั้งในนาฬิกาและ 100 นาฬิกา = 1 วินาที (ปกติ) เพื่อความแม่นยำเป็นเหมือน timeGNU ดังนั้นคำถามคือสิ่งที่timeใช้ทุบตีเพื่อให้แม่นยำยิ่งขึ้น?
12 bash  time  gnu 

1
เป็นตัวอย่างที่ดีของสคริปต์ทุบตีเพื่อศึกษาเพื่อเรียนรู้วิธีการเข้ารหัสที่ดีคืออะไร?
ฉันได้เรียนรู้พื้นฐานของการเขียนโปรแกรมในทุบตี ฉันต้องการศึกษาตัวอย่างของสคริปต์ทุบตีเพื่อที่ฉันจะได้เรียนรู้นิสัยที่ดีในการเขียนสคริปต์ทุบตี โดยเฉพาะอย่างยิ่งฉันสนใจตัวอย่างของสคริปต์ทุบตีที่แสดง: วิธีการประมวลผลข้อโต้แย้งและเรียกการทำงานตามเงื่อนไข วิธีตรวจสอบข้อผิดพลาดในการป้อนข้อมูล วิธีดำเนินการให้เสร็จสิ้นคำสั่ง วิธีจัดระเบียบสคริปต์ทุบตีเป็นฟังก์ชันคำสั่งและอื่น ๆ วิธีการนำเสนอข้อความช่วยเหลือ ตัวอย่างเช่นผมได้เรียนรู้มากจากautorandr บน GitHub มีสคริปต์หรือที่เก็บสคริปต์อื่น ๆ ที่ฉันสามารถเรียนรู้เกี่ยวกับอนุสัญญาการใช้สคริปต์ทุบตีได้หรือไม่?
12 bash 

7
พิมพ์อาร์กิวเมนต์ของเชลล์ในลำดับย้อนกลับ
ฉันติดอยู่นิดหน่อย งานของฉันคือการพิมพ์อาร์กิวเมนต์ไปยังสคริปต์ของฉันในลำดับย้อนกลับยกเว้นที่สามและสี่ สิ่งที่ฉันมีคือรหัสนี้: #!/bin/bash i=$# for arg in "$@" do case $i in 3) ;; 4) ;; *) eval echo "$i. Parameter: \$$i";; esac i=`expr $i - 1` done ในขณะที่ฉันเกลียด eval (ทักทาย PHP) ฉันกำลังมองหาวิธีการแก้ปัญหาโดยไม่ได้ทำ แต่ฉันไม่สามารถหามันได้ ฉันจะกำหนดตำแหน่งของการโต้แย้งแบบไดนามิกได้อย่างไร PS: มันไม่ใช่การบ้านฉันกำลังเรียนรู้การทำข้อสอบดังนั้นฉันจึงพยายามแก้ข้อสอบเก่า

4
คำสั่ง“ ผู้โทร” คืออะไร?
ฉันใช้ Ubuntu 10.10 กับ openbox ที่ทำงานอยู่ด้านบน ฉันสังเกตเห็นคำสั่งวันนี้ที่เรียกว่าcallerแต่ไม่มีหน้าคนมันไม่ตอบสนองต่อการป้อนข้อมูลใด ๆ (หรือ - ช่วย) และที่ไม่พบมัน ความคิดอะไรมันคืออะไร?

3
วิธีการแฮช md5 ส่งผลให้เชลล์
ฉันกำลังมองหาวิธีง่ายๆในการทำให้ผลลัพธ์md5sumเป็นคำสั่งอื่น บางสิ่งเช่นนี้ $echo -n 'test' | md5sum | ... ปัญหาของฉันคือmd5sumเอาต์พุตไม่เพียง แต่การแฮชของสตริงเท่านั้น แต่ยังเป็นไฮเปอร์ซึ่งแสดงว่าอินพุตมาจาก stdin ฉันตรวจสอบไฟล์ man และไม่พบการตั้งค่าสถานะใด ๆ เพื่อควบคุมเอาต์พุต

4
เปิด URL หลายรายการจากไฟล์ข้อความเป็นแท็บต่างๆใน Firefox / Chrome?
ฉันจะเปิด URL หลายรายการจากไฟล์ข้อความเป็นแท็บที่แตกต่างกันใน Firefox / Chrome ได้อย่างไร ไฟล์ข้อความของฉันเป็นเพียงรายการ URL หนึ่งรายการต่อบรรทัด: http://www.url1.com http://www.url2.com http://www.url3.com http://www.url4.com
12 bash  browser 

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