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

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

11
จะ grep ไฟล์ข้อความที่มีข้อมูลไบนารีได้อย่างไร?
ผลตอบแทน grep ไฟล์ไบนารี test.log ตรงกัน ตัวอย่างเช่น echo "line1 re \x00\r\nline2\r\nline3 re\r\n" > test.log # in zsh echo -e "line1 re \x00\r\nline2\r\nline3 re\r\n" > test.log # in bash grep re test.log ฉันหวังว่าผลลัพธ์จะแสดงบรรทัดที่ 1 และบรรทัดที่ 3 (รวมสองบรรทัด) เป็นไปได้ไหมที่จะใช้การtrแปลงข้อมูลที่พิมพ์ไม่ได้ให้เป็นข้อมูลที่อ่านได้เพื่อให้ grep ทำงานอีกครั้ง
123 shell 


1
วิธีเพิ่มบรรทัดที่ท้ายไฟล์บน Linux
ฉันต้องการเพิ่ม 2 บรรทัดต่อไปนี้ ... VNCSERVERS="1:root" VNCSERVERARGS[1]="-geometry 1600x1200" ไปที่จุดสิ้นสุดของไฟล์ vncservers ที่พบในไดเร็กทอรี .... / etc / sysconfig / ฉันจะทำเช่นนี้ได้อย่างไร? ขอบคุณ
122 linux  shell 

5
จุดเข้านักเทียบท่าที่เรียกใช้สคริปต์ทุบตีได้รับ“ การอนุญาตถูกปฏิเสธ”
ฉันกำลังพยายามเทียบท่าแอป node.js เมื่อคอนเทนเนอร์ถูกสร้างขึ้นฉันต้องการให้มันรันgit cloneและเริ่มเซิร์ฟเวอร์โหนด ดังนั้นฉันจึงใส่การดำเนินการเหล่านี้ในสคริปต์. sh และรันสคริปต์เป็นคำสั่งเดียวใน ENTRYPOINT: FROM ubuntu:14.04 RUN apt-get update && apt-get install -y build-essential libssl-dev gcc curl npm git #install gcc 4.9 RUN apt-get install -y software-properties-common python-software-properties RUN add-apt-repository -y ppa:ubuntu-toolchain-r/test RUN apt-get update RUN apt-get install -y libstdc++-4.9-dev #install newst nodejs RUN curl -sL …
122 bash  shell  docker 


14
วิธีพกพาในการรับขนาดไฟล์ (เป็นไบต์) ในเชลล์?
บน Linux ฉันใช้stat --format="%s" FILEแต่ Solaris ที่ฉันเข้าถึงไม่มีคำสั่ง stat ฉันควรใช้อะไร? ฉันกำลังเขียนสคริปต์ Bash และไม่สามารถติดตั้งซอฟต์แวร์ใหม่ในระบบได้ ฉันพิจารณาแล้วว่าใช้: perl -e '@x=stat(shift);print $x[7]' FILE หรือแม้กระทั่ง: ls -nl FILE | awk '{print $5}' แต่สิ่งเหล่านี้ดูไม่สมเหตุสมผล - ใช้ Perl เพื่อรับขนาดไฟล์? หรือรัน 2 คำสั่งทำเหมือนกัน?
121 linux  bash  shell  solaris 

5
Linux bash: การกำหนดตัวแปรหลายตัว
มีอยู่ใน linux bash ซึ่งคล้ายกับโค้ดต่อไปนี้ใน PHP: list($var1, $var2, $var3) = function_that_returns_a_three_element_array() ; กล่าวคือคุณกำหนดค่าที่สอดคล้องกันให้กับตัวแปร 3 ตัวในประโยคเดียว สมมติว่าฉันมีฟังก์ชัน bash myBashFuntionที่เขียนเพื่อ stdout สตริง "qwert asdfg zxcvb" เป็นไปได้ไหมที่จะทำสิ่งต่างๆเช่น: (var1 var2 var3) = ( `myBashFuntion param1 param2` ) ส่วนที่อยู่ทางซ้ายของเครื่องหมายเท่ากับไม่ใช่ไวยากรณ์ที่ถูกต้องแน่นอน ฉันแค่พยายามอธิบายสิ่งที่ฉันขอ สิ่งที่ได้ผลมีดังต่อไปนี้: array = ( `myBashFuntion param1 param2` ) echo ${array[0]} ${array[1]} ${array[2]} แต่อาร์เรย์ที่จัดทำดัชนีจะไม่สามารถอธิบายได้เหมือนกับชื่อตัวแปรธรรมดา อย่างไรก็ตามฉันสามารถทำได้: var1 = …

19
จะพิมพ์คอลัมน์ที่สามเป็นคอลัมน์สุดท้ายได้อย่างไร?
ฉันกำลังพยายามลบสองคอลัมน์แรก (ซึ่งฉันไม่สนใจ) ออกจากไฟล์บันทึก DbgView ดูเหมือนจะไม่พบตัวอย่างที่พิมพ์ตั้งแต่คอลัมน์ 3 เป็นต้นไปจนถึงท้ายบรรทัด โปรดทราบว่าแต่ละบรรทัดมีจำนวนคอลัมน์ที่แปรผัน

9
วิธีเลือกเส้นระหว่างรูปแบบเครื่องหมายสองรูปแบบซึ่งอาจเกิดขึ้นหลายครั้งด้วย awk / sed
ใช้awkหรือsedฉันจะเลือกเส้นที่เกิดขึ้นระหว่างรูปแบบเครื่องหมายสองแบบที่แตกต่างกันได้อย่างไร อาจมีหลายส่วนที่ทำเครื่องหมายด้วยรูปแบบเหล่านี้ ตัวอย่างเช่นสมมติว่าไฟล์มี: abc def1 ghi1 jkl1 mno abc def2 ghi2 jkl2 mno pqr stu และรูปแบบเริ่มต้นคือabcและรูปแบบสิ้นสุดคือmno ดังนั้นฉันต้องการผลลัพธ์เป็น: def1 ghi1 jkl1 def2 ghi2 jkl2 ฉันใช้ sed เพื่อจับคู่รูปแบบครั้งเดียว: sed -e '1,/abc/d' -e '/mno/,$d' <FILE> มีวิธีใดsedหรือawk ต้องทำซ้ำ ๆ จนจบไฟล์?


6
การทำซ้ำในแต่ละบรรทัดของเอาต์พุต ls -l
ฉันต้องการทำซ้ำในแต่ละบรรทัดในผลลัพธ์ของ: ls -l /some/dir/* ตอนนี้ฉันกำลังพยายาม: for x in $(ls -l $1); do echo $x; done อย่างไรก็ตามสิ่งนี้จะวนซ้ำในแต่ละองค์ประกอบในบรรทัดแยกกันดังนั้นฉันจึงได้รับ: -r--r----- 1 ivanevf eng 1074 Apr 22 13:07 File1 -r--r----- 1 ivanevf eng 1074 Apr 22 13:17 File2 แต่ฉันต้องการทำซ้ำในแต่ละบรรทัดโดยรวม ฉันจะทำอย่างไร?
120 linux  shell 

6
ค้นหาทั้งคำและแทนที่
ฉันจะค้นหาและแทนที่ทั้งคำโดยใช้ sed ได้อย่างไร การทำ sed -i 's/[oldtext]/[newtext]/g' <file> จะแทนที่การจับคู่บางส่วน[oldtext]ที่ฉันไม่ต้องการให้ทำ
120 shell  sed 

10
macOS Catalina 10.15 (เบต้า) - เหตุใด ~ / .bash_profile จึงไม่มีที่มาจากเชลล์ของฉัน
ฉันต้องการที่จะตั้งค่าตัวแปรสภาพแวดล้อมฉันเพิ่มด้านล่างเส้น~/.bash_profileและ~/.profileแต่มันก็ไม่ได้ทำงาน export JBOSS_HOME=/Users/{USERNAME}/Desktop/jboss7 หลังจากนั้นออกจากเทอร์มินัลและเปิดอีกครั้งเมื่อดำเนินการecho $JBOSS_HOMEฉันไม่ได้รับอะไรเลย

10
Bash script เพื่อคำนวณเวลาที่ผ่านไป
ฉันกำลังเขียนสคริปต์ใน bash เพื่อคำนวณเวลาที่ผ่านไปสำหรับการดำเนินการตามคำสั่งของฉันให้พิจารณา: STARTTIME=$(date +%s) #command block that takes time to complete... #........ ENDTIME=$(date +%s) echo "It takes $($ENDTIME - $STARTTIME) seconds to complete this task..." ฉันเดาว่าตรรกะของฉันถูกต้อง แต่ฉันก็พิมพ์ออกมาต่อไปนี้: "ใช้เวลาไม่กี่วินาทีในการทำงานนี้ให้เสร็จ ... " มีอะไรผิดปกติกับการประเมินสตริงของฉัน? ฉันเชื่อว่าตัวแปร bash ไม่ได้ถูกพิมพ์ฉันจะชอบถ้ามีวิธี "string to integer" ใน bash อย่างไรก็ตาม
119 linux  bash  shell 

12
Curl เพื่อส่งคืนรหัสสถานะ http พร้อมกับการตอบกลับ
ฉันใช้ curl เพื่อรับส่วนหัว http เพื่อค้นหารหัสสถานะ http และส่งคืนการตอบสนอง ฉันได้รับส่วนหัว http ด้วยคำสั่ง curl -I http://localhost เพื่อรับการตอบสนองฉันใช้คำสั่ง curl http://localhost ทันทีที่ใช้แฟล็ก -I ฉันจะได้รับเฉพาะส่วนหัวและการตอบสนองจะไม่มีอีกต่อไป มีวิธีรับทั้งการตอบสนอง http และรหัสสถานะส่วนหัว / http ในคำสั่งเดียวหรือไม่?
119 shell  curl 

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