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

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

6
วิธีรับทั้ง PIPESTATUS และเอาต์พุตใน bash script
ฉันพยายามรับวันที่แก้ไขล่าสุดของไฟล์ด้วยคำสั่งนี้ TM_LOCAL=`ls -l --time-style=long-iso ~/.vimrc | awk '{ print $6" "$7 }'` TM_LOCAL มีค่าเช่น "2012-05-16 23:18" หลังจากเรียกใช้งานบรรทัดนี้ ฉันต้องการตรวจสอบ PIPESTATUS เพื่อดูว่ามีข้อผิดพลาดหรือไม่ ตัวอย่างเช่นหากไฟล์ไม่มีอยู่lsส่งคืน 2 แต่$?มีค่า 0 เนื่องจากมีค่าส่งคืนawkเป็น ถ้าฉันรันคำสั่งนี้เพียงอย่างเดียวฉันสามารถตรวจสอบค่าส่งคืนของ ls โดยดูที่ ${PIPESTATUS[0]} ls -l --time-style=long-iso ~/.vimrc | awk '{ print $6" "$7 }' แต่$PIPESTATUSไม่ทำงานอย่างที่ฉันคาดไว้ถ้าฉันกำหนดเอาต์พุตให้กับตัวแปรตามตัวอย่างแรก ในกรณีนี้$PIPESTATUSอาร์เรย์มีเพียง 1 องค์ประกอบซึ่งเหมือนกับ$? ดังนั้นคำถามคือฉันจะได้รับทั้งสอง$PIPESTATUSและกำหนดผลลัพธ์ให้ตัวแปรในเวลาเดียวกันได้อย่างไร
9 bash  pipe 

4
ฉันจะตั้งค่าคำสั่ง Unix 'mail' ได้อย่างไร
ฉันได้ดู Google และหน้าคนสำหรับจดหมาย แต่ฉันไม่สามารถหาวิธีการตั้งค่า สิ่งที่ฉันต้องการทำคือตั้งค่าที่อยู่อีเมลของฉันเพื่อให้ฉันสามารถส่งอีเมลผ่านเทอร์มินัล ฉันจะทำอย่างไร
9 bash  email  unix  terminal 

2
เลิกใช้กระบวนการจาก cygwin bash
มีวิธีการอย่างถูกต้องออกจากกระบวนการทุบตี cygwin หรือไม่ เช่นฉันสามารถทำงานในพื้นหลัง /cygdrive/c/Windows/notepad.exe & และหน้าต่าง notepad จะแสดงขึ้นมา แต่เมื่อฉันปิด bash โดยใช้ Ctrl + D หรือพิมพ์ออกจาก bash window จะยังคงเปิดอยู่
9 bash  cygwin 

3
Cygwin .bashrc ไม่ได้เป็นแหล่งที่มาเพราะ cygwin เริ่มต้นใน Windows บ้าน
หมายเหตุ: โปรดดูการแก้ไขครั้งที่สองของฉันด้านล่างสำหรับการอัปเดตเกี่ยวกับปัญหา Cygwin ทำงานได้ดีสำหรับฉันจนถึงสัปดาห์ที่แล้ว ตอนนี้. bashrc ไม่ได้รับที่มา ฉันต้องติดตั้งบางอย่างหรือเปลี่ยนแปลงบางอย่าง แต่ฉันจำไม่ได้ว่าอะไรเป็นสาเหตุของปัญหา เมื่อฉันเริ่ม Cygwin ฉันอยู่ในบ้าน Windows และไม่มีนามแฝงของฉันทำงาน ฉันต้องแหล่ง. bashrc ด้วยตนเอง ต่อไปนี้คือ Cygwin.bat ของฉัน: @echo off C: chdir C:\cygwin\bin set CYGWIN=tty notitle glob bash --login -i ความคิดใด ๆ แก้ไข: .bash_profile ของฉันมีสิ่งต่อไปนี้ # source the users bashrc if it exists if [ -f "${HOME}/.bashrc" ] …
9 bash  cygwin  bashrc 

2
ฉันจะเปลี่ยนชื่อชุดของชื่อไฟล์ใน Linux ได้อย่างไร
ฉันมีโฟลเดอร์ที่มีรูปภาพชื่อ: pic001-2.png pic002-2.png pic003-2.png ฉันจะเปลี่ยนชื่อพวกเขาเป็นดังต่อไปนี้ได้อย่างไร pic001.png pic002.png pic003.png ฉันพยายามแล้วmv "pic*-2.png" "pic*.png"แต่ได้รับข้อผิดพลาด
9 bash  rename 


6
messed up keys เป็นกลุ่มเมื่อทำงานภายใน tmux
ฉันได้เล่นกับ tmux และฉันรักมัน อย่างไรก็ตามมีปัญหาที่น่ารำคาญเมื่อเรียกใช้กลุ่มภายใน อย่างใดปุ่มลูกศรได้รับการแมปใหม่ แต่เฉพาะในบางครั้งเช่นเมื่อยิง Command-T ถ้าฉันพยายามเลื่อนลงรายการไฟล์คำสั่งจะถูกยกเลิกและฉันถูกโยนเข้าสู่โหมดแทรกและขึ้นอยู่กับปุ่มลูกศร ฉันกดจะแทรก A, B, C หรือ D ถ้าฉันใช้ลูกศรเพื่อเลื่อนดูบัฟเฟอร์พวกมันทำงานอย่างถูกต้อง ความคิดใด ๆ ขอบคุณ!
9 keyboard  bash  vim  tmux 


4
จำเป็นต้องซ่อนลิงก์สัญลักษณ์โดยไม่ต้องซ่อนไดเรกทอรีที่ลิงก์ไป
ฉันสร้างลิงก์สัญลักษณ์ (โดยเฉพาะลิงก์สัญลักษณ์และไม่ใช่นามแฝง Finder ที่ไม่สามารถติดตามได้) ไปยังไดเรกทอรีในโฟลเดอร์บ้านของฉันโดยใช้ln -s link $HOME/directory& ตอนนี้ฉันต้องการซ่อนลิงค์ใน Finder ดังนั้นฉันไม่ต้องมอง มัน. ปกติฉันจะใช้chflags hidden linkเพื่อให้บรรลุนี้ แต่แน่นอนว่าจะมีผลต่อไดเรกทอรีไม่ใช่ลิงค์ ฉันไม่สามารถใช้จุดนำมาตรฐานได้เพราะชื่อของลิงก์นั้นมีความสำคัญสำหรับแอปพลิเคชันที่ค้นหาและจุดนำเปลี่ยนชื่อ ดังนั้นคำถามของฉันคือฉันจะซ่อนลิงก์สัญลักษณ์โดยไม่ซ่อนไดเรกทอรีที่ลิงก์ไปหรือเปลี่ยนชื่อได้อย่างไร แก้ไข: ฉันตั้งใจเก็บคำถามที่คลุมเครือไว้เพราะเป็นการทดลองเล็ก ๆ กับ Finder แต่นี่เป็นรายละเอียดเพิ่มเติมบางอย่างที่จะอธิบายอย่างชัดเจนว่าฉันพยายามทำอะไร ตัวค้นหาใช้โฟลเดอร์ $ HOME / Desktop สำหรับเดสก์ท็อปนั้นไม่สำคัญว่าจะเป็นลิงก์ชื่อแทนหรือโฟลเดอร์อื่นที่เรียกว่า“ เดสก์ท็อป” (เช่นโฮมโฟลเดอร์เอง) ตราบใดที่อยู่ในไดเรกทอรี $ HOME . ฉันสร้างลิงก์สัญลักษณ์ไปยังไดเรกทอรีบ้านของฉันชื่อ“ เดสก์ท็อป” เพื่อเติมเนื้อหาของเดสก์ท็อปของ Finder ด้วยเนื้อหาของโฟลเดอร์บ้านของฉัน (ถ้าคุณลองสิ่งนี้มันจะไม่มีผลจนกว่าคุณจะลงชื่อเข้าใช้อีกครั้ง วันที่ 10.6) นอกจากนี้ยังวางลิงก์สัญลักษณ์ไว้บนเดสก์ท็อปซึ่งแน่นอนว่าฉันไม่ต้องการเห็นในหน้าต่าง Finder หรือบนเดสก์ท็อป ถ้าฉันจะเปลี่ยนชื่อเป็น“ .Desktop” เพื่อซ่อนมันจะซ่อน …

1
การนับจำนวนที่เกิดขึ้นในคอลัมน์แรกของไฟล์
เรามีไฟล์นี้: 1 2 1 3 1 2 3 3 52 1 52 300 และอีก 1,000 ฉันต้องการนับจำนวนครั้งที่แต่ละค่าเกิดขึ้นในคอลัมน์แรก 1 3 3 1 52 2 ซึ่งหมายความว่าเราเห็น 1 สามครั้ง. ฉันจะทำสิ่งนั้นใน Perl, AWK หรือ Bash ได้อย่างไร
8 linux  bash  perl  awk 


2
เป็นไปได้ไหมที่จะตรวจสอบว่า -e ตั้งค่าไว้ในสคริปต์ทุบตี
หากฟังก์ชั่นเชลล์ต้องการการตั้งค่าเฉพาะของ -e / + e เพื่อให้ทำงานได้เป็นไปได้หรือไม่ที่จะตั้งค่านั้นแบบโลคัลและจากนั้นเรียกคืนเป็นการตั้งค่าก่อนหน้า myfunction() { # Query here if -e is set and remember in a variable? # Or push the settings to then pop at the end of the function? set +e dosomething doanotherthing # Restore -e/+e as appropriate, don't just do unconditional set -e }

3
มีการต่อท้ายประวัติทุบตี แต่ปิดการใช้ฮิสกิปต์
ฉันใช้ Ubuntu 10.4 และเปลือกของฉันคือ bash. เมื่อฉันเปิดเทอร์มินอล Gnome หลาย ๆ ตัวและปิดประวัติมันก็จะต่อท้าย เมื่อฉันเข้า shopt มันบอกว่าเหนือสิ่งอื่นใด: histappend off ใครสามารถบอกฉันได้ว่ามีการกำหนดค่าลักษณะการทำงานผนวกไว้ที่ใด

3
วิธีการลบไฟล์. swp ที่ซ่อนทั้งหมดออกจากเทอร์มินัล
ฉันจะลบไฟล์. swp ทั้งหมดได้อย่างไร ฉันพยายามrm *.swpแต่ฉันได้rm: *.swp: No such file or directory rwxr-xr-x 16 teacher staff 544 Jan 17 13:19 . drwxr-xr-x 19 teacher staff 646 Jan 16 12:48 .. -rw-r--r-- 1 teacher staff 20480 Jan 17 09:48 .6-1-period-2.txt.swp -rw-r--r-- 1 teacher staff 16384 Jan 17 09:05 .6-2-period-6.txt.swp -rw-r--r--@ 1 teacher …


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