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

Bash เป็นเชลล์ฟรีสำหรับระบบปฏิบัติการยูนิกซ์จากโครงการ GNU

1
ใช้เอาต์พุตของคำสั่งเป็นรหัสออก
สำหรับสคริปต์ Integration Integration ของฉันฉันต้องการตรวจสอบว่าสาขา git ไม่ได้ซิงค์กับสาขาหลัก ดังนั้นฉันใช้ git rev-list --left-right --count master...my-branch-name มันจะส่งคืน sth ชอบ 1 3 (3 มุ่งหน้าก่อนอาจารย์ 1 หลัง) เพิ่ม | cut -f1 จะให้ฉันหมายเลขแรกเท่านั้น (คอมมิชชันด้านหลังของมาสเตอร์) ตอนนี้ฉันต้องการออกจากสคริปต์โดยใช้ตัวเลขนั้นเพราะ 0 คอมมิชชันด้านหลังเป็นความสำเร็จส่วนอีกคนควรให้ข้อผิดพลาด ฉันจะทำสิ่งนั้นได้อย่างไร ฉันเหนื่อย exit 'git rev-list --left-right --count master...my-branch-name | cut -f1' แต่สิ่งนี้เพิ่มขึ้น / bin / bash: บรรทัด 66: exit: git …
6 bash  git  exit-code 

1
รับชื่อไฟล์โดยไม่มีนามสกุลใน Bash
ฉันมีดังต่อไปนี้ for วนเป็นรายบุคคล sort ไฟล์ข้อความทั้งหมดที่อยู่ในโฟลเดอร์ (เช่นสร้างไฟล์เอาต์พุตที่เรียงลำดับสำหรับแต่ละไฟล์) for file in *.txt; do printf 'Processing %s\n' "$file" LC_ALL=C sort -u "$file" > "./${file}_sorted" done มันเกือบจะสมบูรณ์แบบยกเว้นว่ามันจะส่งออกไฟล์ในรูปแบบของ: originalfile.txt_sorted ... ในขณะที่ฉันต้องการส่งออกไฟล์ในรูปแบบ: originalfile_sorted.txt นี่เป็นเพราะ ${file} ตัวแปรมีชื่อไฟล์รวมถึงส่วนขยาย ฉันใช้ Cygwin บน Windows ฉันไม่แน่ใจว่าสิ่งนี้จะทำงานได้อย่างไรในสภาพแวดล้อม Linux จริง แต่ใน Windows ส่วนขยายที่เปลี่ยนไปนี้ทำให้ Windows Explorer ไม่สามารถเข้าถึงไฟล์ได้ ฉันจะแยกชื่อไฟล์จากส่วนขยายเพื่อให้สามารถเพิ่มได้อย่างไร _sorted คำต่อท้ายระหว่างทั้งสองทำให้ฉันสามารถแยกความแตกต่างของรุ่นดั้งเดิมและไฟล์ที่เรียงลำดับได้อย่างง่ายดายในขณะที่ยังคงนามสกุลไฟล์ของ Windows ไว้เหมือนเดิม? ฉันกำลังดูอะไร อาจ …

4
แทนที่โฟลเดอร์ที่มีอยู่ด้วยคำสั่ง mv
ขออภัยหากคำถามนี้ถูกถามไปแล้วฉันไม่พบอะไรเลย ... ให้บอกว่าฉันต้องการแทนที่ 'oldstuff' ด้วย 'newstuff' โดยทั่วไปการตั้งชื่อใหม่เพื่อแทนที่ ฉันลองใช้คำสั่งนี้: mv ~/newstuff ~/oldstuff แต่นั่นเป็นการย้ายโฟลเดอร์ 'newstuff' ไปยังโฟลเดอร์ 'oldstuff' เท่านั้น ฉันจะแทนที่ 'oldstuff' ด้วย 'newstuff' ได้อย่างไร ฉันใช้ OS X 10.7
6 macos  mac  bash  mv 

5
ลบโฟลเดอร์เปล่าทั้งหมดแม้จะมีโฟลเดอร์. svn อยู่ด้วย
ฉันพยายามลบโฟลเดอร์เปล่าทั้งหมดในไดเรกทอรี แต่find . -type f -emptyไม่พบอะไรเลยเพราะทุกโฟลเดอร์ที่มีซ่อน.svnโฟลเดอร์ ฉันจะแก้ไขสิ่งนี้ได้อย่างไร

2
ฉันจะแปลงอักขระพิเศษ UTF-8 เป็น Bash ได้อย่างไร
ฉันกำลังเขียนสคริปต์ที่แยกและบันทึกไฟล์แนบ JPEG จากอีเมลและส่งต่อไปยัง imagemagick อย่างไรก็ตามฉันอาศัยอยู่ในเยอรมนีและตัวละครพิเศษในข้อความอีเมล์ / หัวเรื่องเป็น "ö", "ä", "ü" และ "ß" เป็นเรื่องธรรมดา ฉันกำลังแยกหัวเรื่องด้วย formail: SUBJECT=$(formail -zxSubject: <"$file") และผลลัพธ์ใน: = UTF-8? Q? Meine_G = c3 = bcte? = ("Meine Güte") หรือแย่กว่านั้น = UTF-8? B? U2Now7ZuZSBHcsO8w59lIQ ==? = ("SchöneGrüße!") ฉันพยายามใช้ส่วนหนึ่งของหัวเรื่องเป็นชื่อไฟล์และเป็นคำอธิบายประกอบแบบข้อความของ imagemagick ซึ่งเห็นได้ชัดว่าใช้งานไม่ได้ ฉันจะแปลงข้อความ UTF-8 นี้เป็นข้อความด้วยอักขระพิเศษใน bash ได้อย่างไร ขอบคุณล่วงหน้า! มาร์คัส
6 bash  email  utf-8 

2
การเข้าถึงพรอมต์“ Git Bash” ของ Windows ระยะไกลจากเครื่อง Linux หรือไม่
"Git ทุบตี" เป็นโปรแกรมที่มาพร้อมกับGit สำหรับ Windows ในการรับพรอมต์ Git Bash บนเครื่อง Windows ระยะไกลจากเครื่อง linux กระบวนการปกติของฉันคือใช้remminaเพื่อเปิดการเชื่อมต่อ RDP จากนั้นเปิดหน้าต่าง Git Bash ใหม่ มีวิธีการเข้าสู่ระบบโดยใช้เปลือกทุบตีของฉันแทนที่จะต้องโคลนกับสิ่ง GUI หรือไม่?
6 windows  linux  bash  git  msysgit 

1
อักขระตัวแทนภายในเครื่องหมายคำพูดคู่มีอยู่หรือไม่ [ปิด]
ใน "BASH มาตรฐาน" สัญลักษณ์แทนที่อยู่ในเครื่องหมายคำพูดคู่หรือไม่ ตัวอย่างเช่น: $ touch abc $ ls "*abc*" จะว่าหรือจะไม่ทำงานที่ทุบตี? ฉันบอกว่า Ubuntu มาพร้อมกับตัวแปรทุบตีที่ไม่สอดคล้องกับ POSIX หรือ BASH มันเป็นเรื่องจริงเหรอ?
6 bash  globbing 

3
คุณจะใช้ PIPESTATUS, tee และ / bin / sh ร่วมกันได้อย่างไร
เมื่อฉันวิ่ง curl | tee test.txt; echo ${PIPESTATUS[0]} ฉันเห็นอย่างถูกต้อง curl: ลอง 'curl --help' หรือ 'curl - คู่มือ' สำหรับข้อมูลเพิ่มเติม 2 แต่เมื่อฉันพยายามเรียกใช้คำสั่งเดียวกันโดยใช้ '/ bin / sh': sh -c "curl | tee test.txt; echo \${PIPESTATUS[0]}" ฉันเข้าใจ curl: ลอง 'curl --help' หรือ 'curl - คู่มือ' สำหรับข้อมูลเพิ่มเติม sh: 1: การเปลี่ยนตัวไม่ดี เราจะแก้Bad substitutionปัญหาได้อย่างไร
6 linux  bash  pipe  exit-code 

2
CPU แบบเค้นตามอุณหภูมิหรือไม่ - อูบุนตู
ฉันใช้งานบางโปรแกรมในเครื่อง Ubuntu ที่ใช้พลังงาน CPU สูงสุดเป็นระยะเวลานาน ทำให้คอมพิวเตอร์ร้อนมากเกินไป มีคนแนะนำโปรแกรมที่ดีที่จะเร่งกำลัง CPU ลงเพื่อรักษาอุณหภูมิที่ตั้งไว้หรือไม่? ฉันลองจูปิเตอร์ แต่มันไม่มีคุณสมบัตินั้น ฉันยังลองใช้สคริปต์ Linux บางตัว แต่ฉันไม่มีทักษะในการปรับเปลี่ยนให้ทำงานบน Ubuntu ความช่วยเหลือใด ๆ ที่จะได้รับการชื่นชมมาก
6 bash  ubuntu 

2
เป็นกลุ่มดำเนินการกระบวนการในพื้นหลัง
ฉันต้องการเรียกใช้กระบวนการในพื้นหลังใน Vim บน Mac OS X (หรือ Unix โดยทั่วไป) ฉันหวังและคาดหวังสิ่งต่อไปนี้หรือตัวแปรบางอย่างที่จะทำให้สิ่งนี้บรรลุผล: execute "!my_command &" หรือ !my_command & หรือ !my_command \& หรือทางเลือกอื่น ๆ น่าเสียดายที่นี่ดูเหมือนจะไม่ทำงานmy_commandเลย ฉันคาดหวังว่าจะมีตัวเลือกที่บางเบา ทางเลือกหนึ่งคือการเขียนสคริปต์ตัวตัดคำที่ใช้คำสั่งและออก แต่ฉันแน่ใจว่ามีคนทำเช่นนั้นแล้ว ( GNU Parallel ?) วิธีที่ดีที่สุดในการทำสิ่งนี้ให้สำเร็จคืออะไร?
6 macos  bash  vim 


2
การส่งคำสั่งไปยังเซสชัน tmux พาเรนต์จากกลุ่ม
ฉันมีการติดตั้งหน้าต่างแยกเป็นกลุ่มและคมใน tmux ฉันกำลังพยายามสร้างสคริปต์เพื่อให้ฉันสามารถส่งคำสั่งแบบกำหนดเองไปเป็นกลุ่มซึ่งจะบันทึกสคริปต์ที่ฉันทำงานสลับโฟกัสไปที่บานหน้าต่าง Lynx รีเฟรชหน้าคมแล้วเปลี่ยนกลับเป็นบานหน้าต่างกลุ่ม มีสคริปต์ที่มีอยู่ที่ทำเช่นนี้? ถ้าไม่จะเป็นวิธีที่ดีที่สุดสำหรับการสร้างสคริปต์นี้อะไร
5 bash  vim  script  tmux  lynx 

3
เทคนิคที่เชื่อถือได้สำหรับการฆ่ากระบวนการพื้นหลังในการยกเลิกสคริปต์คืออะไร?
ฉันใช้เชลล์สคริปต์เพื่อตอบสนองต่อเหตุการณ์ของระบบและสถานะการอัปเดตจะแสดงในตัวจัดการหน้าต่างของฉัน ตัวอย่างเช่นหนึ่งสคริปต์กำหนดสถานะ wifi ปัจจุบันโดยการฟังหลายแหล่ง: เชื่อมโยง / แยกเหตุการณ์จาก wpa_supplicant การเปลี่ยนแปลงที่อยู่จาก ip (ดังนั้นฉันรู้ว่าเมื่อ dhcpcd ได้กำหนดที่อยู่) กระบวนการตัวจับเวลา (ดังนั้นความแรงของสัญญาณจะอัปเดตเป็นครั้งคราว) เพื่อให้ได้มัลติเพล็กซ์ฉันต้องวางไข่กระบวนการพื้นหลัง: { wpa_cli -p /var/run/wpa_supplicant -i wlan0 -a echo & ip monitor address & while sleep 30; do echo; done } | while read line; do update_wifi_status; done & เช่นการตั้งค่าคือเมื่อใดก็ตามที่แหล่งที่มาของเหตุการณ์ส่งออกเป็นเส้นสถานะ wifi ของฉันจะอัปเดต ไปป์ไลน์ทั้งหมดทำงานในพื้นหลัง (สุดท้าย '& …
5 linux  bash  shell  process 

1
เปิดใช้งานเสียงเตือนในหน้าต่างปัจจุบันของหน้าจอ gnu
ฉันใช้ putty เพื่อ ssh ไปยัง ubuntu bash shell ซึ่งเก็บ irssi ไว้ในหน้าจอ ฉันคิดว่าฉันสามารถกำหนดค่า irssi ให้ส่งสัญญาณเสียงระบบเมื่อมีข้อความแสดงหรือกิจกรรมเกิดขึ้นและฉันได้จัดการตั้งค่า putty ให้กะพริบในแถบงานเมื่อได้รับตัวอักษรระฆัง ปัญหาของฉันคือหน้าจอ ฉันไม่สามารถรับหน้าจอเพื่อทำสิ่งใดนอกจากแฟลชเทอร์มินัลเมื่อส่งสัญญาณเตือนจากหน้าต่างที่ใช้งานอยู่ในปัจจุบัน กับ vbell on มันกะพริบหน้าต่างที่โป๊ว echo ^G. กับ vbell off มันยังกะพริบหน้าต่างที่โป๊ว เมื่อไม่ได้อยู่ในหน้าจอระฆังจะแพร่กระจายอย่างถูกต้องและดำเนินการตามการตั้งค่าสีโป๊วของฉัน ( vbell on/off เป็นสิ่งเดียวกับการกด ctrl+a ctrl+g ) แกนกลางของปัญหาน่าจะเป็นที่หน้าจอใช้กระดิ่งภาพไม่ว่าการตั้งค่าการตั้งค่า อาจจะเรียงลำดับบางส่วนของ terminfo ความไม่ลงรอยกันระหว่าง bash และหน้าจอ? ฉันจะทำให้หน้าจอส่งออดเสียงได้เมื่อกำหนดค่าให้ส่งเสียงเตือนได้อย่างไร

3
วิธีรันสคริปต์ภายในเซสชัน telnet
ฉันต้องการเชื่อมต่อกับโฮสต์ระยะไกลโดยใช้ telnet ไม่มีการยืนยันชื่อผู้ใช้ / รหัสผ่าน เพียงแค่ telnet remotehost จากนั้นฉันต้องป้อนคำสั่งบางอย่างเพื่อเริ่มต้น แล้วฉันต้องทำซ้ำคำสั่งต่อไปนี้: cmd argument อาร์กิวเมนต์ถูกอ่านจากไฟล์โลคัลในไฟล์นี้มีหลายบรรทัดแต่ละบรรทัดเป็นอาร์กิวเมนต์ และหลังจากเรียกใช้หนึ่ง "อาร์กิวเมนต์ cmd" โฮสต์ระยะไกลจะแสดงผลลัพธ์บางอย่าง มันอาจจะส่งออกบรรทัดที่มีสตริง "ตกลง" หรือเอาท์พุทหลายบรรทัดหนึ่งในนั้นคือกับสตริง "ข้อผิดพลาด" และฉันต้องทำอะไรบางอย่างตามผลลัพธ์ โดยพื้นฐานแล้วสคริปต์จะเป็นอย่างไร: initialization_cmd #some initial comands while read line do cmd $line #here the remote host will output results, how can I put the results into a variable? # …
5 bash  script  telnet 

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