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

"read" คือยูทิลิตี้เชลล์ที่ใช้สำหรับการอ่านสตริงจากอินพุตสตรีมมาตรฐานหรือจาก file descriptor

1
จะรับอ่านทั้งหมดและเขียน IOPS ทั้งหมดใน Linux ได้อย่างไร
ฉันจะอ่านและเขียน IOPS แยกกันใน Linux โดยใช้บรรทัดคำสั่งหรือวิธีการเขียนโปรแกรมได้อย่างไร ฉันได้ติดตั้งsysstatแพ็คเกจแล้ว โปรดบอกฉันว่าฉันจะคำนวณสิ่งเหล่านี้แยกกันโดยใช้sysstatคำสั่งแพ็คเกจได้อย่างไร หรือเป็นไปได้ที่จะคำนวณโดยใช้ระบบไฟล์? อดีต: /procหรือ/sysหรือ/dev
32 linux  io  disk  read  write 

2
ในทุบตีอ่านหลังจากท่อไม่ได้ตั้งค่า
แก้ไข: ชื่อเดิมคือ "อ่านล้มเหลวในการทุบตี" ด้วย ksh ฉันใช้อ่านเป็นวิธีที่สะดวกในการแยกค่า: $ echo 1 2 3 4 5 | read a b dump $ echo $b $a 2 1 $ แต่มันล้มเหลวในการทุบตี: $ echo 1 2 3 4 5 | read a b dump $ echo $b $a $ ฉันไม่พบเหตุผลในหน้าคู่มือทำไมจึงล้มเหลวความคิดใด ๆ
22 bash  shell  pipe  read 

2
ความหมายของ read -r คืออะไร?
เพื่อที่จะเข้าใจคำตอบอื่น: find / -type d -print0 | while read -r -d ''; do ls -ltr "$dir" | sed '$!d' ขั้นตอนแรกคือการเข้าใจการใช้ตัวเลือก -r ของคำสั่ง read ครั้งแรกฉันคิดว่ามันจะเพียงพอที่จะดำเนินการเพียงแค่ man read เพื่อค้นหาความหมายของตัวเลือก -r แต่ฉันรู้ว่า man page ไม่มีคำอธิบายใด ๆ สำหรับตัวเลือกเลยดังนั้นฉันจึง googled เพราะมันมี read -t, read-p ตัวอย่าง แต่ไม่มี read -r

4
ทำไมเชลล์บางตัว `read` builtin ไม่สามารถอ่านบรรทัดทั้งหมดจากไฟล์ใน` / proc` ได้?
ในเชลล์คล้ายบอร์นบางตัวบิวอินreadไม่สามารถอ่านทั้งบรรทัดจากไฟล์ใน/proc(คำสั่งด้านล่างควรจะรันzshแทนที่$=shellด้วย$shellเชลล์อื่น ๆ ): $ for shell in bash dash ksh mksh yash zsh schily-sh heirloom-sh "busybox sh"; do printf '[%s]\n' "$shell" $=shell -c 'IFS= read x </proc/sys/fs/file-max; echo "$x"' done [bash] 602160 [dash] 6 [ksh] 602160 [mksh] 6 [yash] 6 [zsh] 6 [schily-sh] 602160 [heirloom-sh] 602160 [busybox sh] 6 readมาตรฐานต้องการอินพุตมาตรฐานต้องเป็นไฟล์ข้อความข้อกำหนดนั้นเป็นสาเหตุของพฤติกรรมที่หลากหลายใช่หรือไม่ …
19 linux  shell  proc  read 

1
วนซ้ำกับสตริงหลายบรรทัดที่เก็บอยู่ในตัวแปร
ฉันอ่านว่ามันไม่ดีที่จะเขียนสิ่งต่าง ๆ เช่นfor line in $(command)วิธีที่ถูกต้องดูเหมือนจะเป็นแทน: command | while IFS= read -r line; do echo $line; done มันใช้งานได้ดี แต่ถ้าสิ่งที่ฉันต้องการทำซ้ำคือเนื้อหาของตัวแปรไม่ใช่ผลลัพธ์โดยตรงของคำสั่ง ตัวอย่างเช่นสมมติว่าคุณสร้างไฟล์ต่อไปนี้quickfox: The quick brown foxjumps\ over - the lazy , dog. ฉันอยากทำสิ่งนี้: # This is just for the example, # I could of course stream the contents to `read` variable=$(cat quickfox); …
17 bash  read 

1
ความหมายของ“ <& 3” และ“ Done <file11 3 <file22” คืออะไร
ฉันมีสคริปต์ต่อไปนี้: while read lineA &amp;&amp; read lineB &lt;&amp;3 do echo "$lineA" echo "$lineB" echo done &lt; file11 3&lt; file22 รหัสนี้ใช้งานได้ดี แต่ฉันไม่เข้าใจสิ่งเหล่านี้: &lt;&amp;3 done &lt; file11 3&lt; file22

4
Bash: พรอมต์ระยะไกลแบบโต้ตอบ
ฉันมีสคริปต์ที่เชื่อมต่อกับเซิร์ฟเวอร์ระยะไกลและตรวจสอบว่ามีการติดตั้งแพคเกจ: ssh root@server 'bash -s' &lt; myscript.sh myscript.sh: OUT=`rpm -qa | grep ntpdate` if [ "$OUT" != "" ] ; then echo "ntpdate already installed" else yum install $1 fi ตัวอย่างนี้สามารถทำให้ง่ายขึ้น นี่คือmyscript2.shสิ่งที่มีปัญหาเดียวกัน: read -p "Package is not installed. Do you want to install it (y/n)?" choise ปัญหาของฉันคือทุบตีไม่สามารถอ่านคำตอบของฉันแบบโต้ตอบ มีวิธีดำเนินการสคริปต์ท้องถิ่นจากระยะไกลโดยไม่สูญเสียความสามารถในการแจ้งผู้ใช้หรือไม่
16 bash  shell-script  ssh  stdin  read 

3
bash: ปัญหาบางอย่างเมื่อใช้การอ่าน <<<“ $ VARIABLE” บนพาร์ติชันรูทแบบอ่านอย่างเดียว การแก้ไขปัญหาใด ๆ ที่รู้จักกัน?
โดยบังเอิญฉันต้องใช้สคริปต์ ATA-ID-to-device-name (อยู่ที่นี่: /server/244944/linux-ata-errors-translating-to-a-device-name/ 426561 # 426561 ) ในพาร์ติชันแบบอ่านอย่างเดียว /ในกรณีที่คุณอยากรู้อยากเห็นมันเป็นคอนโซลการกู้คืนของ Ubuntu ซึ่งจะช่วยให้คุณเข้าถึง/พาร์ติชันของคุณแต่จะติดตั้งเป็นอ่านอย่างเดียวโดยค่าเริ่มต้น ฉันดีใจที่เป็นเช่นนั้นเพราะไม่เช่นนั้นฉันอาจไม่เคยพบว่าสคริปต์ของฉันทำงานผิดปกติในระบบ R / O เนื่องจากบรรทัดที่เฉพาะเจาะจงอันนี้: IFS=: read HostMain HostMid HostSub &lt;&lt;&lt; "$HostFull" วิธีนี้ใช้ไม่ได้หากไม่มีสิทธิ์ในการเขียน ฉันไม่คิดเลยว่ามันจะล้มเหลว แต่เห็นได้ชัดว่า&lt;&lt;&lt;ผู้ประกอบการไม่จำเป็นต้องเขียนไฟล์ชั่วคราวบางส่วนไปยังที่อื่น แต่มีวิธีใดที่จะหลีกเลี่ยงการสร้างไฟล์ชั่วคราวหรือมีวิธีใดที่จะระบุตำแหน่งของไฟล์ที่ถูกเขียนไป? ในคอนโซลการกู้คืนของอูบุนตูมี - ผิดปกติพอ --- เขียนสิทธิ์ใน/runไดเรกทอรีดังนั้นถ้าฉันสามารถ "บอก" readเพื่อเขียนไฟล์ชั่วคราวไปที่อื่นที่ไม่ใช่ปกติ

3
ไพพ์สคริปต์ด้วย“ อ่าน” เพื่อทุบตี
ฉันต้องการเรียกใช้สคริปต์โดยการไพพ์สคริปต์ผ่านbashด้วยwget(แทนที่จะรันสคริปต์โดยตรงด้วยการทุบตี) $ wget -O - http://example.com/my-script.sh | bash มันไม่ทำงานเพราะสคริปต์ของฉันมีreadข้อความอยู่ ด้วยเหตุผลบางอย่างสิ่งเหล่านี้ใช้ไม่ได้เมื่อไปป์เพื่อทุบตี: # Piping to bash works in general $ echo 'hi' hi $ echo "echo 'hi'" | bash hi # `read` works directly $ read -p "input: " var input: &lt;prompt&gt; # But not when piping - returns immediately $ echo …
10 bash  shell  pipe  read 

4
หลายคำสั่งระหว่าง SSH ภายในเซสชัน SSH
ฉันมีเครื่องท้องถิ่นซึ่งควรจะทำเซสชั่น SSH ไปยังmasterเครื่องระยะไกลและจากนั้นอีกเซสชั่น SSH ภายในจากmasterไปยังแต่ละระยะไกลบางส่วนslavesแล้วดำเนินการ 2 คำสั่งคือการลบไดเรกทอรีที่เฉพาะเจาะจงและสร้างมันขึ้นมาใหม่ โปรดสังเกตว่าเครื่องโลคัลมี SSH ที่ไม่มีรหัสผ่านไปที่มาสเตอร์และมาสเตอร์มี SSH ที่ไม่มีรหัสผ่านไปยังทาส นอกจากนี้ชื่อโฮสต์ทั้งหมดเป็นที่รู้จักใน.ssh/configเครื่องท้องถิ่น / เครื่องต้นแบบและชื่อโฮสต์ของทาสอยู่ในเครื่องslaves.txtและฉันอ่านจากที่นั่น ดังนั้นสิ่งที่ฉันทำและทำงานคือ: username="ubuntu" masterHostname="myMaster" while read line do #Remove previous folders and create new ones. ssh -n $username@$masterHostname "ssh -t -t $username@$line "rm -rf Input Output Partition"" ssh -n $username@$masterHostname "ssh -t -t $username@$line "mkdir -p …
10 bash  ssh  amazon-ec2  read 

2
วิธีอ่านอินพุตของผู้ใช้เมื่อใช้สคริปต์ในไพพ์
ปัญหาทั่วไป ฉันต้องการเขียนสคริปต์ที่โต้ตอบกับผู้ใช้แม้ว่ามันจะอยู่กลางสายโซ่ของท่อ ตัวอย่างคอนกรีต รูปธรรมก็จะใช้เวลาfileหรือstdinแสดงเส้น (มีหมายเลขบรรทัด) stdoutขอให้ผู้ใช้ป้อนข้อมูลการเลือกหรือสายตัวเลขและจากนั้นพิมพ์เส้นที่สอดคล้องกับ มาเรียกสคริปต์นี้selectorกัน ถ้าอย่างนั้นฉันก็อยากจะทำ grep abc foo | selector &gt; myfile.tmp ถ้าfooมี blabcbla foo abc bar quux xyzzy abc จากนั้นselectorนำเสนอตัวเลือก (บนเทอร์มินัลไม่ใช่ในmyfile.tmp!) 1) blabcbla 2) foo abc bar 3) xyzzy abc Select options: หลังจากนั้นฉันพิมพ์ 2-3 และจบลงด้วย foo abc bar xyzzy abc myfile.tmpเป็นเนื้อหาของ ฉันมีสคริปต์ตัวเลือกทำงานอยู่และโดยพื้นฐานแล้วมันจะทำงานได้อย่างสมบูรณ์แบบหากฉันไม่เปลี่ยนเส้นทางอินพุตและเอาต์พุต ดังนั้น selector foo ทำงานเหมือนที่ฉันต้องการ …

3
วิธีจัดการ backspace ขณะอ่านหนังสือ
ฉันจะจัดการ backspaces ที่ป้อนมาได้อย่างไรมันจะแสดง^?ว่าพยายามแล้วและreadนับตัวอักขระอย่างไรเนื่องจาก12^?3ตัวอักษร 5 ตัวนั้นเสร็จสมบูรณ์แล้ว (แม้ว่าพวกเขาทั้งหมดจะไม่ใช่อินพุตจริง) แต่หลังจากที่12^?3^?มันกลับมาพร้อมท์แปลก ๆ กรุณาช่วย! -bash-3.2$ read -n 5 12^?3^?-bash-3.2$
10 bash  shell  line-editor  read 

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