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

ตัวเลือกการส่งผ่านเช่น -l หรือ --word ไปยังคำสั่งหรือแยกวิเคราะห์ในสคริปต์

1
ทำไม -a ใน“ #! / bin / sh -a” ส่งผลกระทบต่อ sed และ“ set -a” ไม่?
ถ้าฉันเรียกใช้ไฟล์. sh ต่อไปนี้: #!/bin/sh -a echo "a" | sed -e 's/[\d001-\d008]//g' ผลลัพธ์เป็นข้อผิดพลาด: sed: -e นิพจน์ # 1, อักขระ 18: ช่วงสิ้นสุดไม่ถูกต้อง แต่ถ้าฉันเรียกใช้ไฟล์. sh ต่อไปนี้: #!/bin/sh set -a echo "a" | sed -e 's/[\d001-\d008]//g' มันทำงานโดยไม่มีข้อผิดพลาด รหัสที่สองไม่ควรจะเทียบเท่ากับรหัสแรก? ทำไมข้อผิดพลาดในอันแรก?

5
ฉันจะตรวจจับได้อย่างไรว่าไม่มีตัวเลือกใดถูกส่งผ่านด้วย getopts
ฉันมีรหัสนี้ - #getoptDemo.sh usage() { echo "usage: <command> options:<w|l|h>" } while getopts wlh: option do case $option in (w) name='1';; (l) name='2';; (h) name='3';; (*) usage exit;; esac done print 'hi'$name เมื่อผมทำงานbash getoptDemos.sh(ไม่มีตัวเลือก) จะพิมพ์แทนการเรียกฟังก์ชั่นhi usageมันเรียกการใช้งานเมื่อตัวเลือกอื่นนอกเหนือจาก w, h และ l จะได้รับ จากนั้นไม่สามารถใช้งานได้เมื่อไม่มีการระบุตัวเลือก ผมได้ลองใช้?, \?, :ในสถานที่ของ*แต่ฉันไม่สามารถบรรลุสิ่งที่ผมอยากจะ ผมหมายถึงทั้งหมดที่docsเกี่ยวกับการบอกว่ามันกับการใช้งานgetopt? ผมทำอะไรผิดหรือเปล่า?
19 bash  shell  options  getopts 

3
เหตุใดตัวเลือกในตัวแปรที่ยกมาจึงล้มเหลว แต่ทำงานเมื่อไม่ได้อ้างอิง
ฉันอ่านเกี่ยวกับว่าฉันควรอ้างอิงตัวแปรใน bash เช่น "$ foo" แทนที่จะเป็น $ foo อย่างไรก็ตามในขณะที่เขียนสคริปต์ฉันพบกรณีที่ใช้ได้โดยไม่ต้องใส่เครื่องหมายคำพูด แต่ไม่ใช่กับพวกเขา: wget_options='--mirror --no-host-directories' local_root="$1" # ./testdir recieved from command line remote_root="$2" # ftp://XXX recieved from command line relative_path="$3" # /XXX received from command line อันนี้ใช้ได้ผล: wget $wget_options --directory_prefix="$local_root" "$remote_root$relative_path" อันนี้ไม่ (บันทึกคำพูดคู่ aroung $ wget_options): wget "$wget_options" --directory_prefix="$local_root" "$remote_root$relative_path" อะไรคือสาเหตุของสิ่งนี้? บรรทัดแรกเป็นเวอร์ชั่นที่ดี; หรือฉันควรสงสัยว่ามีข้อผิดพลาดที่ซ่อนอยู่ที่ไหนสักแห่งที่ทำให้เกิดพฤติกรรมนี้? …

6
การคอมไพล์ GNU / Linux ด้วยการเพิ่มประสิทธิภาพ -O3
ได้มีการกล่าวว่าการรวบรวมเครื่องมือ GNU และเคอร์เนล Linux พร้อม-O3ตัวเลือกการเพิ่มประสิทธิภาพ gcc จะสร้างข้อผิดพลาดที่แปลกและแปลกใหม่ จริงป้ะ? มีใครลองดูบ้างหรือว่ามันเป็นเรื่องหลอกลวง?

4
ฉันจะจัดการสวิตช์ในเชลล์สคริปต์ได้อย่างไร
มีเครื่องมือในตัวที่จะรับรู้-xและ--xxxxเป็นสวิตช์และไม่ขัดแย้งหรือคุณต้องผ่านตัวแปรอินพุททั้งหมดทดสอบการขีดกลางแล้วจึงแยกอาร์กิวเมนต์หลังจากนั้น

2
ไวยากรณ์ของ ls --hide = และ ls --ignore =
ls --hideและls --ignoreให้ความเป็นไปได้ที่จะปล่อยไฟล์ที่กำหนดไว้ผ่านการแสดงออกปกติที่กำหนดไว้หลังจาก--ignore=ส่วนหนึ่ง -a, -Aทำให้หลังแน่ใจว่าตัวเลือกนี้ไม่ปิดทาง คำสั่งmanและinfoหน้าพูดถึงนิพจน์ปกติ คำถาม : ซึ่งสัญลักษณ์หรือนิพจน์ปกติได้รับการสนับสนุนในและls --hide=ls --ignore= ฉันพบว่า* $ ?ดูเหมือนจะได้รับการสนับสนุนเช่นเดียวกับ POSIX Bracket Expressions แต่ดูเหมือนว่ามันจะไม่ทำงานอย่างถูกต้องตลอดเวลาและเป็นเกมแห่งการลองผิดลองถูกสำหรับฉัน ฉันคิดถึงสิ่งที่สำคัญที่นี่หรือไม่?

4
เหตุใด ls จึงยอมรับสวิตช์ที่ซ้ำกัน
ฉันอยากรู้อยากเห็น - มีความแตกต่างระหว่างls -lและls -lllllllllllllllllllllllllllll? ผลลัพธ์ดูเหมือนจะเหมือนกันและฉันสับสนว่าทำไมจึงlsอนุญาตให้สวิตช์ซ้ำกัน นี่เป็นมาตรฐานการปฏิบัติระหว่างคำสั่งส่วนใหญ่หรือไม่?
16 ls  options 

2
เหตุใดจึงเว้นช่องว่างระหว่างตัวเลือกและพารามิเตอร์
ตัวอย่างเช่น: xargs -n 1 เป็นเช่นเดียวกับ xargs -n1 แต่ถ้าคุณดูที่man pageตัวเลือกจะแสดงรายการเป็น-n max-argsซึ่งหมายความว่าควรจะรักษาพื้นที่ไว้ ไม่มีอะไรที่เกี่ยวกับรูปแบบย่อ -n เป็นสูงสุด args นอกจากนี้ยังเกิดขึ้นกับสาธารณูปโภค Linux อื่น ๆ อีกมากมาย สิ่งนี้เรียกว่าอะไรใน Linux? ยูทิลิตี้ทั้งหมดสนับสนุนรูปแบบย่อ (แต่ไม่เคยจัดทำเป็นเอกสารไว้ใน man page)?
16 options 

1
คุณต้องการระบุตัวเลือก“ ค่าเริ่มต้น” ใน fstab หรือไม่?
Arch วิกิพีเดียในการfstabระบุตัวเลือกของ/ที่จะเป็นdefaults,noatimeแต่ในการติดตั้งของฉันเริ่มต้นจะถูกสร้างขึ้นพร้อมกับตัวเลือกของfstab Arch วิกิพีเดียครอบคลุมประเด็น สิ่งที่ฉันอยากรู้คือตัวเลือก หน้าพูดว่า:rw,relatimeatimedefaultsmanmount ค่าเริ่มต้น ใช้ตัวเลือกเริ่มต้น: rw, suid, dev, exec, auto, nouser และ async โปรดทราบว่าชุดตัวเลือกการเมานต์เริ่มต้นที่แท้จริงทั้งหมดขึ้นอยู่กับเคอร์เนลและประเภทระบบไฟล์ ดูจุดเริ่มต้นของส่วนนี้สำหรับรายละเอียดเพิ่มเติม มีการใช้ตัวเลือกเริ่มต้นเฉพาะเมื่อdefaultsมีการจัดหาตัวเลือกหรือใช้ในทุกกรณีหรือไม่ ฉันต้องการdefaultsในของฉันfstab?
15 fstab  options 

2
ความแตกต่างระหว่างการตั้งค่าสถานะตัวเลือกและอาร์กิวเมนต์คืออะไร [ปิด]
ปิด คำถามนี้เป็นคำถามความคิดเห็นตาม ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้สามารถตอบข้อเท็จจริงและการอ้างอิงได้โดยแก้ไขโพสต์นี้ ปิดให้บริการใน3 ปีที่ผ่านมา ls -a(ฉันพิจารณา-aตัวเลือก) sudo -u username( -u= ตัวเลือกusername= arg) chmod 664 my-dir( 664= ตัวเลือกmy-dir= arg) ฉันไม่สามารถนึกถึงตัวอย่างที่อาจพูดว่า "นี่คือธง" ยกเว้นบางทีเมื่อดูรายชื่อ dir: -r--------. 1 david david 3344 May 19 17:48 611056.pdf สิ่งนี้มีการตั้งค่า "อ่านธง" สำหรับเจ้าของ แต่นั่นคือทั้งหมด จะหยุดฉันไม่ให้เรียกสิ่งนั้นว่า "ตัวเลือกการอ่าน" ฉันเขียนและแก้ไขเอกสารทางเทคนิคเป็นหลักใน DocBook XML และฉันกำลังมองหาคำอธิบายของความแตกต่างซึ่งสอดคล้องและถูกต้องที่สุด อย่างไรก็ตามฉันเห็นรูปแบบการขึ้นรูปแล้ว: ธงมีแนวโน้มที่จะเป็นบูลีน เช่น,setenforce 0 ตัวเลือกช่วยกำหนดวิธีการทำงานของคำสั่ง บางคนอาจจะเป็นตัวเลือก …

3
ข้อโต้แย้งเชิงลบที่หัว / หาง
คำถามที่แตกต่างกันนี้ได้ถูกถามหลายครั้งในที่ต่างกัน แต่ฉันพยายามลบMบรรทัดสุดท้ายออกจากไฟล์โดยไม่มีโชค ตอบที่สองได้รับการโหวตมากที่สุดในคำถามนี้แนะนำให้ทำดังต่อไปที่จะกำจัดของบรรทัดสุดท้ายในแฟ้ม: head -n -1 foo.txt > temp.txt อย่างไรก็ตามเมื่อฉันลองใน OSX & Zsh ฉันจะได้รับ: head: illegal line count -- -1 ทำไมถึงเป็นอย่างนั้น? ฉันจะเอาM ที่ผ่านมาสายและแรก Nสายของไฟล์ที่กำหนดหรือไม่

3
อะไรคือจุดที่แท้จริงของตัวเลือก -f บน rm?
โดยการอ่าน GNU coreutils man page สำหรับrmหนึ่งในตัวเลือกคือ-fตามคู่มือ -f, --force ignore nonexistent files and arguments, never prompt ตอนนี้ฉันทำการทดสอบและแสดงให้เห็นว่าถ้าฉันใช้สิ่งที่ชอบ rm -f /nonexisting/directory/ มันจะไม่บ่น สิ่งที่ใครบางคนสามารถได้รับจากตัวเลือกดังกล่าวจริง ๆ ? รวมทั้งตัวอย่างที่พบบ่อยที่สุดของ "การลบไดเรกทอรี" โดยใช้rmคือสิ่งที่ต้องการ rm -rf /delete/this/dir -rตัวเลือกที่จะทำให้ความรู้สึก แต่-f?
14 rm  options  coreutils 

3
จุดประสงค์ของ `rm -P` คืออะไร?
ฉันอ่าน man page สำหรับrmเมื่อฉันเจอตัวเลือกนี้: -P Overwrite regular files before deleting them. Files are overwritten three times, first with the byte pattern 0xff, then 0x00, and then 0xff again, before they are deleted. ฉันเดา-Pว่าใช้สำหรับลบไฟล์อย่างละเอียด แต่จะไม่ตั้งค่าไบต์ทั้งหมดเป็น0xffหรือ0x00เพียงพอหรือไม่ ทำไมถึงต้องสลับระหว่างสองสามครั้ง?
11 rm  options 

2
ดาวน์โหลดรายการไฟล์หากยังไม่มีอยู่
หากฉันมีรายการ URL คั่นด้วย\nมีตัวเลือกใดบ้างที่ฉันสามารถส่งไปwgetเพื่อดาวน์โหลด URL ทั้งหมดและบันทึกลงในไดเรกทอรีปัจจุบัน แต่เฉพาะในกรณีที่ไฟล์ยังไม่มีอยู่หรือไม่
11 wget  download  options 

1
วิธีผนวกหลายบรรทัดไปยังไฟล์ด้วย bash โดยใช้“ -” ที่หน้าสตริง
คำถามที่คล้ายกันมากกับวิธีต่อท้ายหลายบรรทัดไปยังไฟล์ที่มี bashแต่ฉันต้องการเริ่มต้นไฟล์ด้วย--และผนวกเข้ากับไฟล์ด้วยถ้าเป็นไปได้ printf "--no-color\n--format-doc\n--no-profile\n" >> ~/.rspec-test ปัญหากำลังเริ่มต้นไฟล์ด้วย "-" ให้ฉัน: -bash: printf: --: invalid option printf: usage: printf [-v var] format [arguments] มีวิธีหนี--หรือไม่? มีทางเลือกอื่นอีกไหม? ฉันไม่แน่ใจว่าจะใช้หลายบรรทัดได้echoอย่างไรและcatไม่ใช่ตัวเลือกที่ดีฉันต้องการให้เป็นสคริปต์อัตโนมัติ
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.