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

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

1
ฉันจะตรวจสอบว่าไฟล์ใหม่กว่านั้นได้หรือไม่ที่ไฟล์เป้าหมายในเชลล์สคริปต์
ฉันจะตรวจสอบว่าไฟล์ใหม่กว่านั้นเป็นไฟล์เป้าหมายได้อย่างไร ในเชลล์สคริปต์ตั้งใจให้ทำงานบน Mac ฉันต้องการทำสิ่งนี้: #!/bin/bash if [ $SourceFile dateisgreater $TargetFile ] then echo "SourceFile is newer that Targetfile" fi

1
เหตุใดจึงมี. bash_profile และ. bashrc พวกเขาดูเหมือนจะทำสิ่งเดียวกัน [ซ้ำ]
รายการซ้ำที่เป็นไปได้: mac / ubuntu ใช้. bash_profile และ / หรือ. bashrc เมื่อใด ความแตกต่างระหว่าง. bashrc และ. bash_profile ฉันโหลดอูบุนตูบน vm บนคอมพิวเตอร์ที่ใช้ windows และ. bash_profile ของฉันดูเหมือนจะไม่โหลดเมื่อเปิดเทอร์มินัล (ฉันต้องใช้แหล่งที่มา บางระบบโหลด. bashrc โดยค่าเริ่มต้นในขณะที่ระบบอื่น (เช่น Mac osx) โหลด. bash_profile หรือไม่
2 ubuntu  bash  terminal 

2
ตั้งค่า ls เพื่อให้ได้ผลลัพธ์ที่มีสีตามค่าเริ่มต้น
ใน. bashrc ของฉันฉันมีบรรทัดต่อไปนี้เพื่อเปิดสีสำหรับ grep และ ls alias ls='ls --color=auto' export GREP_OPTIONS='--color=auto' ฉันได้ลองเปลี่ยนนามแฝงเป็นแล้วexport LS_OPTIONS='--color=auto'แต่นั่นไม่ได้ผล จะมีการใช้การส่งออกแทนนามแฝงอยู่แล้ว และมีประโยชน์อย่างใดอย่างหนึ่งมากกว่าอีกทางหนึ่ง?

0
นามแฝง / ฟังก์ชันเพื่อเปิดหน้าต่างเทอร์มินัลหลายเครื่องและเรียกใช้คำสั่งในแต่ละหน้าต่างใหม่
เมื่อเริ่มต้นวันทำงานของฉันฉัน cd ลงในโฟลเดอร์โครงการ เปิดสามแท็บ: หนึ่งแท็บสำหรับเซิร์ฟเวอร์ rails หนึ่งแท็บสำหรับ vim และอีกอันสำหรับการรันคำสั่ง git และคอนโซล rails ฉันพยายามสร้างนามแฝงและมีฟังก์ชั่นสองสามอย่างที่จะทำ อย่างไรก็ตามมันจะรันคำสั่งทั้งหมดในหน้าต่างแรก ฉันจะมุ่งเน้นไปที่แท็บที่เพิ่งเปิดใหม่และดำเนินการคำสั่งที่สองได้อย่างไร ฟังก์ชัน. bash_profile ของฉันบางส่วน: alias rs=" rails s" alias gpo="git pull origin" #nt as in NewTab in current dir function nt() { open . -a "iterm 2" } สิ่งที่ฉันได้ลองไปแล้ว: #go start coding for the day. alias …

2
ทำไมสิ่งนี้ถึงไม่สร้างรูตเชลล์
ฉันใช้ OSX 10.8 ก่อนการทดลองของฉันมันเป็นเช่นนี้: Nathan-der-Graue:~ max$ ls -l /bin/bash -r-xr-xr-x 1 root wheel 1333920 17 Feb 15:22 /bin/bash จากนั้นฉันก็วิ่ง Nathan-der-Graue:~ max$ sudo chmod +s /bin/bash ฉันคาดว่าสิ่งนี้จะทำให้ bash เกิดขึ้นเสมอในฐานะเชลล์รูท แต่ดูเหมือนว่าไม่ได้เปลี่ยนอะไรเลยกับพฤติกรรมของ bash: Nathan-der-Graue:~ max$ /bin/bash bash-3.2$ whoami max ฉันรู้ว่านี่ไม่ใช่ความคิดที่ดีเลย ความผิดพลาดของฉันอยู่ที่ไหน ฉันเดาว่าฉันเข้าใจผิดกับ + s-flag
2 macos  bash  root 

1
แหล่งที่มาหลายไฟล์ผ่านการเติมชื่อไฟล์เชลล์
ฉันพยายามเปิดใช้งานการเติมข้อความอัตโนมัติของคำสั่ง homebrew ของฉัน Homebrew สร้างโฟลเดอร์โดยอัตโนมัติbash_completion.dและ sym-links ไฟล์เสร็จสิ้นทั้งหมดที่นั่น $ ls -a `brew --prefix`/etc/bash_completion.d/ . .. brew_bash_completion.sh git-completion.bash ที่คุณสามารถดูฉันมีสำเร็จและbrew gitดังนั้นฉันพยายามเรียกใช้ไฟล์: [ -d `brew --prefix`/etc/bash_completion.d ] && source `brew --prefix`/etc/bash_completion.d/* นี้อยู่ในของฉันและฉันคาดหวังนี้ไปยังแหล่งไฟล์ทั้งหมดใน~/.bash_profile bash_completion.dเมื่อฉันลองใช้ในภายหลังในเทอร์มินัลเพียง แต่ทำสำเร็จbrewเท่านั้น มีบางอย่างที่ฉันขาดหายไปหรือไม่?
2 macos  bash  homebrew 

1
เอาต์พุต awk พิมพ์ไปยังสองไฟล์แยกกัน
นี่คือรหัสปัจจุบันของฉัน md5sum filename.iso | awk '{print $1} {print $2}' มันให้สองบรรทัดแยกกัน บรรทัดแรกคือ md5 ของไฟล์และบรรทัดที่สองคือชื่อของไฟล์ ฉันต้องการบันทึก md5 เป็น md5.txt และชื่อไฟล์ไปที่ name.txt ผลลัพธ์ของ md5sum คือxxxxxxx filename

3
อนุญาตให้เทอร์มินัลที่วางไข่ rdesktop ปิดโดยไม่ต้องปิดหน้าต่าง rdesktop ใน Ubuntu 9.10
ใช้งาน Ubuntu 9.10 เมื่อฉันเรียกใช้งาน: rdesktop 147.145.168.224 & หน้าต่างเดสก์ท็อประยะไกลปรากฏขึ้นและคำสั่งปรากฏขึ้นในเชลล์ที่ถูกเรียกใช้งานเนื่องจากฉันสามารถดำเนินการคำสั่งเพิ่มเติมได้ อย่างไรก็ตามเมื่อฉันปิดเชลล์หน้าต่างเดสก์ท็อประยะไกลจะปิดลง ฉันจะวางไข่กระบวนการ rdesktop ได้อย่างไรโดยที่ยังคงเปิดอยู่เมื่อเทอร์มินัลที่วางไข่ปิด ฉันดูเหมือนจะไม่ได้มีปัญหาเดียวกันกับการทำงาน: firefox &

3
นับไฟล์ในรายการไดเรกทอรี
ฉันมีไฟล์พร้อมรายการไดเรกทอรีที่ฉันอยากรู้ว่ามีกี่ไฟล์ในแต่ละไดเรกทอรี ... / images / idsuffix / userids / นี่จะให้จำนวนไฟล์และไดเรกทอรีสำหรับ 5 ไดเรกทอรีแรกแทนที่จะเป็นสำหรับแต่ละไดเรกทอรี ค้นหา ./images/00{0..5}/ | ห้องน้ำ สิ่งที่ฉันต้องการคือการนับเนื้อหาสำหรับแต่ละไดเรกทอรี ฉันพยายามส่งผ่าน xargs แต่ทำสิ่งเดียวกันและสร้างการนับสำหรับไดเรกทอรีทั้งหมด ls ./images/ > directories.lst cat directories.lst | xargs -i{} find {} | wc และนี่ไม่ได้สร้างผลลัพธ์ใด ๆ เลย cat directories.lst | xargs -I{} bash -s "find {} | wc"
2 linux  bash  find  pipe 

1
วิธีเก็บรักษา white space ใน Bash ขัดแย้ง
ฉันใช้คำสั่ง: cm1 cm2 arg1 arg2 'argument 3' ก่อนอื่นจะไปที่cm1ซึ่งจะเปลี่ยนเส้นทางarg1 arg2 'argument 3'ไปยังไฟล์อื่น /usr/bin/cm1: #! /bin/bash # some script here shift cm2 $@ /usr/bin/cm2: echo $# # This returns 4 in lieu of 3 because the white space in 'argument 3' causes the argument to be split into two arguments. ดังนั้นฉันจะส่งผ่านข้อโต้แย้งจากสคริปต์หนึ่งไปยังอีกสคริปต์ได้อย่างไรและตรวจสอบให้แน่ใจว่าไม่มีการอ่าน white …

2
ทำการซิปไฟล์ซ้ำเป็น. cbz-files โดยอ้างอิงจากโฟลเดอร์ในบรรทัดคำสั่ง
ฉันพยายามหาวิธีเขียนสคริปต์เพื่อสร้างไฟล์. cbz จากรูปภาพในโฟลเดอร์ใน OSX โดยอัตโนมัติ แผนผังไดเรกทอรีของฉันจะมีลักษณะเช่นนี้: /toplevel/ cbz/ comics/ Comic1/ comic1file1.jpg comic1file2.gif comic1file3.png Comic2/ comic2file1.jpg comic2file2.gif Publisher/ Comic3/ comic3file1.jpg comic3file2.gif comic3file3.png Comic4/ comic4file1.jpg comic4file2.gif และสิ่งที่ฉันต้องการทำคือเรียกใช้สคริปต์ที่จะค้นหาโฟลเดอร์ใด ๆ ที่มีไฟล์จริงแทนที่จะเป็นโฟลเดอร์ย่อยและ zip ให้เปลี่ยนชื่อจาก. zip ไปเป็น. cbz และย้ายไฟล์. cbz ไปยังโฟลเดอร์ / cbz ที่อยู่บนสุด โฟลเดอร์ใด ๆ ที่มีโฟลเดอร์ย่อยไม่ควรมีไฟล์ใด ๆ ดังนั้นอาจเป็นประโยชน์ นอกจากนี้ฉันไม่คาดหวังว่าจะมีโฟลเดอร์ย่อยลึกกว่าที่แสดงในตัวอย่างด้านบน ตำแหน่งที่ฉันอยู่: ตัวอย่างนี้จะมองผ่านโฟลเดอร์และสร้างไฟล์. cbz สำหรับแต่ละโฟลเดอร์ย่อย for dir …

2
BASH - เรียกใช้คำสั่งโดยใช้ sudo แต่อยู่ในหน้าจอเดี่ยว
ฉันพยายามเรียกใช้คำสั่งในฐานะผู้ใช้ที่แตกต่างกัน แต่ในหน้าจอที่แยกออกมาและดูเหมือนจะไม่สามารถรับไวยากรณ์ได้ค่อนข้างถูกต้อง หากฉันแบ่งคำสั่งต่าง ๆ ฉันสามารถทำให้พวกมันทำงานได้ แต่เมื่อฉันรวมคำสั่งทั้งหมดเข้าด้วยกันจะไม่มีอะไรเกิดขึ้น สิ่งที่ฉันพยายาม: COMMAND='COUNTER=0; while [ $COUNTER -lt 10 ]; do echo Count: $COUNTER; let COUNTER=COUNTER+1; sleep 15; done' if [ $USER_CURRENT = $USER_RUN_AS ]; then screen -dmS $REMOTE_REPO_NAME -c "$COMMAND 2>&1 >> $LOG_FILE_URI" else # This works, but I would like it to run in …
2 linux  bash 

1
วิธีรับ bash prompt ใน ssh tunnel ด้วยปุ่ม rsa
หลังจากตั้งค่าไคลเอนต์และเซิร์ฟเวอร์ด้วยพับลิกคีย์และอนุญาตให้ PubKeyAuthentication ใช่ฉันจะออกคำสั่งต่อไปนี้และรับเชลล์ที่รอโดยไม่มีกำหนด mad@amd:~> ssh -T mad@myserver.com Linux debian 2.6.32-5-686 #1 SMP Sun May 6 04:01:19 UTC 2012 i686 The programs included with the Debian GNU/Linux system are free software; the exact distribution terms for each program are described in the individual files in /usr/share/doc/*/copyright. Debian GNU/Linux comes with ABSOLUTELY …

2
การรันสคริปต์ทุบตีปฏิบัติการได้ด้วยเครื่องหมายทับหรือไม่มี
ฉันมีสคริปต์ทุบตีtest.shซึ่งไม่ทำอะไรเป็นพิเศษ: #!/bin/bash echo Hello! ถ้าฉันเรียกใช้เช่นนี้. test.shมันใช้งานได้ kopparberg:dev marek$ . test.sh Hello! ถ้าฉันเรียกใช้เช่นนี้./test.shมันไม่ได้ kopparberg:dev marek$ ./test.sh -bash: ./test.sh: /bin/bash^M: bad interpreter: No such file or directory อะไรคือความแตกต่าง?
2 bash 

1
วิธีการค้นหาด้วย Bash สำหรับไฟล์ / โฟลเดอร์ทั้งหมดที่มีซับสตริงที่กำหนดในเส้นทางของพวกเขา?
ฉันต้องการค้นหาไฟล์ที่ชื่อมีคำว่า "สามารถ" ในโฟลเดอร์ใด ๆ ที่ชื่อมีคำว่า "dir" ฉันจะทำสิ่งนี้โดยใช้ Bash ได้อย่างไร
2 bash 

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