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

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

9
จะบังคับให้ 'cp' เขียนทับไดเร็กทอรีแทนที่จะสร้างอันใหม่ภายในได้อย่างไร
ฉันกำลังพยายามเขียนสคริปต์ Bash ที่จะเขียนทับไดเร็กทอรีที่มีอยู่ ฉันมีไดเร็กทอรีfoo/และฉันกำลังพยายามเขียนทับbar/ด้วย แต่เมื่อฉันทำสิ่งนี้: cp -Rf foo/ bar/ สร้างbar/foo/ไดเร็กทอรีใหม่ ฉันไม่ต้องการสิ่งนั้น มีสองไฟล์ในfoo/; aและb. มีไฟล์ที่มีชื่อเดียวกันอยู่bar/ด้วย ฉันต้องการfoo/aและfoo/bแทนที่bar/aและbar/b.
110 linux  bash  shell  command-line  cp 

3
การแก้ไขตัวแปรในเชลล์
filepath=/tmp/nameฉันมีตัวแปรที่เรียกว่า ในการเข้าถึงตัวแปรฉันรู้ว่าฉันสามารถทำได้: $filepath ในเชลล์สคริปต์ของฉันฉันพยายามทำบางสิ่งเช่นนี้ (มีจุดมุ่งหมายเพื่อ backticks) `tail -1 $filepath_newstap.sh` บรรทัดนี้ล้มเหลว duuh! เนื่องจากไม่ได้เรียกตัวแปร $filepath_newstap.sh ฉันจะต่อท้าย_newstap.shชื่อตัวแปรได้อย่างไร โปรดทราบว่า backticks มีไว้สำหรับการประเมินนิพจน์
110 bash  shell  unix 

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

1
เหตุใดแฮช MD5 ที่สร้างโดย Python จึงแตกต่างจากที่สร้างโดยใช้ echo และ md5sum ในเชลล์
แฮช Python MD5 แตกต่างจากแฮชที่สร้างโดยคำสั่ง md5sum บนเชลล์ ทำไม? >>> import hashlib >>> h = hashlib.md5() >>> h.update("mystringforhash") >>> print h.hexdigest() 86b6423cb6d211734fc7d81bbc5e11d3 # Result from Python $ echo mystringforhash | md5sum 686687dd68c5de717b34569dbfb8d3c3 - # Result on the shell
109 python  shell  md5sum 


6
ใช้ awk กับเงื่อนไขค่าคอลัมน์
ฉันกำลังเรียนรู้ awk จากThe AWK Programming Languageและฉันมีปัญหากับหนึ่งในตัวอย่าง ถ้าฉันต้องการพิมพ์ $ 3 ถ้า $ 2 เท่ากับค่า (เช่น1) ฉันใช้คำสั่งนี้ซึ่งใช้ได้ดี: awk '$2==1 {print $3}' <infile> | more แต่เมื่อฉันแทนที่ 1 ด้วยเกณฑ์การค้นหาอื่น (เช่นfindtext) คำสั่งไม่ทำงาน: awk '$1== findtext {print $3}' <infile> | more มันไม่ส่งคืนผลลัพธ์และฉันแน่ใจว่ามี 'findtext' อยู่ในไฟล์อินพุต ฉันลองสิ่งนี้ด้วย แต่ไม่ได้ผล: awk '$1== "findtext" {print $3}' <infile> | more นี่คือไฟล์ทดสอบของฉันชื่อ 'test' …
109 linux  shell  awk 

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 


2
Python 3 Online Interpreter / Shell [ปิด]
ตามที่กล่าวไว้ในปัจจุบันคำถามนี้ไม่เหมาะสำหรับรูปแบบถาม & ตอบของเรา เราคาดหวังว่าคำตอบจะได้รับการสนับสนุนจากข้อเท็จจริงการอ้างอิงหรือความเชี่ยวชาญ แต่คำถามนี้อาจก่อให้เกิดการถกเถียงโต้แย้งการสำรวจความคิดเห็นหรือการอภิปรายเพิ่มเติม หากคุณรู้สึกว่าคำถามนี้สามารถปรับปรุงได้และอาจเปิดใหม่ได้โปรดไปที่ศูนย์ช่วยเหลือเพื่อรับคำแนะนำ ปิดให้บริการใน8 ปีที่ผ่านมา มีล่ามออนไลน์เช่นhttp://codepad.org/หรือhttp://www.trypython.org/ซึ่งใช้ Python 3 หรือไม่ ตอบ เนื่องจากคำถามถูกปิดฉันจึงให้คำตอบอื่นที่นี่ WandboxมีREPLออนไลน์สำหรับหลายภาษารวมถึง Python 2.x และ 3.x, C ++ และ Java

7
เปิดไฟล์จาก Cygwin
มีopenคำสั่งเทียบเท่ากับ OSX ใน cygwin หรือไม่ openเปิดไฟล์ด้วยแอปพลิเคชันเริ่มต้นสำหรับประเภทนั้น ฉันต้องการทำสิ่งที่ชอบ $ magic-command file.xls #excel opens as if file.xls would have been double-clicked $ magic-command file.txt #notepad opens as if file.txt would have been double-clicked คุณได้รับความคิด? โดยทั่วไปบางอย่างเช่นคำสั่ง "cygwin-double-click"
108 shell  cygwin 

11
จะรับหมายเลขเวอร์ชันรีลีสของ Erlang จากเชลล์ได้อย่างไร
หลายโปรแกรมส่งคืนหมายเลขเวอร์ชันด้วยคำสั่งเช่น: $ program --version program (platform info) v1.2.3 สิ่งนี้มีประโยชน์สำหรับการเขียนสคริปต์การติดตั้งหรือการบำรุงรักษาโปรแกรมและเวทมนตร์อัตโนมัติที่ควบคุมอื่น ๆ จากผู้ดูแลระบบและเพื่อน ๆ ปัญหา จะรับหมายเลขเวอร์ชันสำหรับ Erlang (OTP) ได้อย่างไร? บนเน็ต ต่อไปนี้เป็นวิธีแก้ปัญหาที่ไม่น่าพอใจ ([1] และบทช่วยสอนอื่น ๆ / เอกสาร Erlang): โปรแกรมจำลอง $ erl 1> erlang:system_info(otp_release). "R13B03" ยากที่จะเขียนสคริปต์ ฉันไม่พบวิธีerlดำเนินการคำสั่งเดียวจากเชลล์พรอมต์ ไฟล์ที่เผยแพร่ $ cat /usr/lib/erlang/releases/RELEASES [{release,"OTP APN 181 01","R13B03","5.7.4", [{kernel,"2.13.4","/usr/lib/erlang/lib/kernel-2.13.4"}, {stdlib,"1.16.4","/usr/lib/erlang/lib/stdlib-1.16.4"}, {sasl,"2.1.8","/usr/lib/erlang/lib/sasl-2.1.8"}], permanent}]. การแยกวิเคราะห์สวรรค์ (พร้อมเปลือก) อีกทางเลือกหนึ่งอาจตรวจสอบเส้นทางการติดตั้ง แต่ไม่สามารถพกพาได้ (เส้นทางการติดตั้งของฉันไม่รวมเวอร์ชันหนึ่ง) …
108 shell  erlang 

13
การเว้นอักขระในพิมพ์ f
ฉันกำลังเขียนสคริปต์ bash เชลล์เพื่อแสดงว่ากระบวนการกำลังทำงานอยู่หรือไม่ จนถึงตอนนี้ฉันได้รับสิ่งนี้: printf "%-50s %s\n" $PROC_NAME [UP] รหัสให้ผลลัพธ์นี้แก่ฉัน: JBoss [DOWN] GlassFish [UP] verylongprocessname [UP] ฉันต้องการเว้นช่องว่างระหว่างสองฟิลด์ด้วย '-' หรือ '*' เพื่อให้อ่านง่ายขึ้น ฉันจะทำได้อย่างไรโดยไม่รบกวนการจัดตำแหน่งของฟิลด์ ผลลัพธ์ที่ฉันต้องการคือ: JBoss ------------------------------------------- [DOWN] GlassFish --------------------------------------- [UP] verylongprocessname ----------------------------- [UP]
108 bash  shell  printf 

10
ฉันจะวางรหัสทุบตีแบบหลายบรรทัดลงในเทอร์มินัลและเรียกใช้ทั้งหมดพร้อมกันได้อย่างไร
ฉันต้องการวางรหัสทุบตีแบบหลายบรรทัดลงในเทอร์มินัล แต่เมื่อใดก็ตามที่ฉันทำแต่ละบรรทัดจะทำงานเป็นคำสั่งแยกกันทันทีที่วาง
108 linux  bash  shell  terminal  paste 

4
เชลล์สคริปต์ในขณะที่อ่านลูปบรรทัดหยุดหลังจากบรรทัดแรก
ฉันมีเชลล์สคริปต์ต่อไปนี้ จุดประสงค์คือเพื่อวนผ่านแต่ละบรรทัดของไฟล์เป้าหมาย (ซึ่งพา ธ เป็นพารามิเตอร์อินพุตไปยังสคริปต์) และทำงานกับแต่ละบรรทัด ตอนนี้ดูเหมือนว่าจะใช้ได้เฉพาะกับบรรทัดแรกในไฟล์เป้าหมายและหยุดหลังจากที่บรรทัดนั้นได้รับการประมวลผล มีอะไรผิดปกติกับสคริปต์ของฉันหรือไม่? #!/bin/bash # SCRIPT: do.sh # PURPOSE: loop thru the targets FILENAME=$1 count=0 echo "proceed with $FILENAME" while read LINE; do let count++ echo "$count $LINE" sh ./do_work.sh $LINE done < $FILENAME echo "\ntotal $count targets" ในdo_work.shฉันเรียกใช้sshคำสั่งสองสามคำสั่ง
107 bash  shell  ssh  while-loop 


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