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

Bash (Bourne-Again SHell) เป็นเชลล์ที่ใช้ในอินเตอร์เฟสบรรทัดคำสั่งของ Ubuntu ตามค่าเริ่มต้น

3
ทับซ้อนกันเป็นแนวยาวใน Bash PS1 ที่กำหนดเอง
ฉันได้กำหนดค่าPS1พรอมต์การทุบตีสองบรรทัดอันน่าทึ่งด้วยชื่อเซิร์ฟเวอร์เวลาชื่อผู้ใช้และตัวแปรที่มีประโยชน์อื่น ๆ PS1="\n\[\033[1;34m\]\342\226\210\342\226\210 \u @ $SERVER_NAME""$BBlue"" \w""$Color_Off \n\[\033[0;36m\]\342\226\210\342\226\210 \d \t $ \[\033[0;39m\]" แหล่งที่มาแบบเต็ม Github ที่นี่ ปัญหาคือเส้นยาวมักจะพันรอบตัวเองซึ่งหมายความว่าบรรทัดใหม่ทับซ้อนกับบรรทัดก่อนหน้า ปัญหาไม่สอดคล้องกัน: บางบรรทัดถูกห่ออย่างถูกต้องบางบรรทัดไม่ถูกต้อง ความคิดวิธีการแก้ไขปัญหานี้?
13 bash  prompt  ps1 

2
shopt ทำงานในบรรทัดคำสั่งไม่พบเมื่อทำงานในสคริปต์
ฉันกำลังเขียนสคริปต์เพื่อคัดลอกไฟล์บางไฟล์และพยายามใช้shopt -s dotglob เพื่อเปิดใช้งาน cp เพื่อคัดลอก dotfiles like .jshintand whatnot ฉันสามารถรันshopt -s dotglobโดยตรงที่ bash prompt โดยไม่มีข้อผิดพลาด อย่างไรก็ตามการรันสคริปต์จะพ่นข้อผิดพลาด: script.sh: 81: script.sh: shopt: not found #!/usr/bin/env bashฉันทำงานสคริปต์นี้ในเปลือกทุบตีด้วยส่วนหัว shebang บรรทัดข้อผิดพลาด: shopt -s dotglob cp -r $TEMP/img/* $TARGET/img/ cp -r $TEMP/js/* $TARGET/js/ cp -r $TEMP/less/* $TARGET/less/ ไม่พบสิ่งที่มีประโยชน์บน google ความคิดใด ๆ ว่าปัญหาอยู่ที่นี่หรือไม่
13 bash  scripts 

6
ฉันจะเล่นเพลงในพื้นหลังผ่านทางบรรทัดคำสั่งของฉันได้อย่างไร
ฉันติดตั้งแล้วplay: sudo apt-get install sox libsox-fmt-mp3 ตอนนี้ฉันสามารถเล่นไฟล์เสียงแบบนี้: play Desktop/SONGS/01\ -\ Oh\ Baby\ Girl.mp3 เนื่องจากฉันเรียนรู้เชลล์ฉันหวังว่าฉันจะทำสิ่งนี้: (sleep 10 ; play Desktop/SONGS/01\ -\ Oh\ Baby\ Girl.mp3 ) & หลังจาก10วินาทีฉันก็เห็นหน้าจอเป็น: File Size: 7.38M Bit Rate: 260k Encoding: MPEG audio Info: 2012 Channels: 2 @ 16-bit Track: 01/09 Samplerate: 44100Hz Album: Maalai Pozhudhin Mayakathilaey :::tunesinn.blogspot.com::: …
13 command-line  bash  music  sox 

5
bash เทียบเท่ากับคำสั่งหยุดชั่วคราวของ DOS คืออะไร?
ฉันต้องการหยุดชั่วคราวในเชลล์สคริปต์เพื่อแสดงคำเตือนก่อนดำเนินการต่อ ตัวอย่างเช่นบน DOS มันจะเป็นดังนี้: doit.bat: [...] echo 'Are you sure? Press Ctrl-C to abort, enter to continue.' pause [...] ฉันจะทำสิ่งนี้ในทุบตีได้อย่างไร สำหรับช่วงเวลาที่คำสั่ง sleep นั้นดูเหมือนจะทำกลอุบายและเรียบง่ายพอ แต่ก็ไม่ใช่ความคิดที่แน่นอน: doit.sh [...] echo 'Are you sure? Press Ctrl-C to abort.' sleep 3 [...]
13 bash  console 

3
สคริปต์ของฉันจะกำหนดได้อย่างไรว่ามันถูกเรียกใช้โดย bash หรือ dash หรือไม่
ฉันกำลังใช้การติดตั้ง Oneiric ใหม่ (เช่นไม่ใช่การอัปเกรด) บนระบบที่แตกต่างกันสองระบบและทำงานในปัญหาเดียวกันที่เกี่ยวข้อง พวงที่น่าผิดหวังที่สุดคือเมื่อฉันใช้. profile และ. bashrc ที่ฉันพกติดตัวไปด้วยจาก Mac OS X การเข้าสู่ X ผ่าน LightDM จะทำให้ฉันออกจากระบบทันที ฉันเชื่อว่าสิ่งนี้เกิดจากความจริงที่ว่าเมื่อรัน "/ bin / sh" มันจะทำงานเป็น / bin / dash แต่ยังคงมีตัวแปร $ SHELL ตั้งเป็น / bin / bash การคาดการณ์ .bashrcฉันมีขนาดใหญ่ คุณสามารถดูได้ที่นี่หากคุณต้องการ แต่เนื้อหาอาจไม่เกี่ยวข้องนอกเหนือจากข้อเท็จจริงที่ว่ามันเต็มไปด้วย bashisms และความจริงที่ว่ามันทำงานได้โดยไม่มีข้อผิดพลาดภายใน xterm หรือบนคอนโซลเสมือน .profileหน้าตาของฉันแบบนี้ (ตัวย่อ): case $SHELL in *bash*) …

2
ไม่พบคำสั่งเมื่อพยายามตั้งค่ารูปแบบสำหรับคำสั่ง time
ฉันพยายามที่จะใช้เวลาในการรันคำสั่งโดยมีเอาต์พุตในรูปแบบเฉพาะ: time -f "%E" ls -l นี่คล้ายกับตัวอย่างใน man page (และในman page ออนไลน์ ) อย่างไรก็ตามเมื่อฉันเรียกใช้คำสั่งนี้ฉันได้รับ: -f: command not found ดูเหมือนว่าคำสั่ง time จะไม่อ่านอาร์กิวเมนต์ -f เป็นอาร์กิวเมนต์ แต่เป็นคำสั่งที่ฉันพยายามเรียกใช้ ฉันจะรับเวลาดำเนินการสำหรับคำสั่งในรูปแบบเฉพาะได้อย่างไร

1
เมื่อคุณเรียกใช้ `update-rc.d myscript default` - เรียกว่าเมื่อเริ่มต้น / ปิดเครื่อง?
สิ่งที่เรียกว่าเมื่อเริ่มต้น / ปิดเมื่อคุณเรียกใช้update-rc.d myscript default? เอกสารดูเหมือนจะคลุมเครือฉันต้องการคอนกรีต ฉันเดาว่าสิ่งนี้จะเกิดขึ้น: เมื่อเริ่มต้น (โดยเฉพาะที่รายการถึง runlevel 2, ผู้ใช้หลายคน) คำสั่งนี้จะถูกดำเนินการ: /etc/init.d/myscript start และเมื่อปิด / รีบูตสคริปต์เดียวกันนี้จะเรียกว่า: /etc/init.d/myscript stop นั่นคือทั้งหมดที่เกิดขึ้นที่นี่จริงเหรอ?
13 bash  startup  reboot  init  init.d 

4
ประวัติคำสั่ง Bash ไม่ทำงาน
ประวัติคำสั่งระหว่างเซสชันไม่ได้รับการบันทึก ฉันใช้ guake และประวัติของเซสชั่นก็ใช้งานได้ดี ฉันสังเกตเห็นว่า. bash_historyมีคำสั่งบางอย่างที่ฉันเรียกใช้ในsudo -sโหมดและลองเหมือนกันอีกครั้งและคำสั่งทั้งหมดในขณะที่อยู่ในเซสชันจึงถูกบันทึกไว้ดังนั้นฉันจึงลองchmod 777 .bash_history ตอนนี้คำสั่งเก่าจะปรากฏขึ้นที่จุดเริ่มต้นของเซสชัน แต่ไม่มีคำสั่งใหม่ที่ได้รับการบันทึก ขอบคุณล่วงหน้า

3
การตั้งค่าตัวแปรเชลล์ TERM เริ่มต้นเป็นอย่างไร
หลังจากอัปเกรดเป็นไม่ฝักใฝ่ฝ่ายใดฉันได้ตั้งค่าตัวแปร TERM ของฉันเป็น 'ใบ้' สิ่งนี้ไม่ได้เกิดขึ้นกับ dir บ้านเดิมที่รันจาก Lucid และฉันไม่ได้เปลี่ยนอะไรที่เกี่ยวข้องกับ TERM ด้วยตนเอง แนวคิดใดที่จะตั้งค่าตัวแปร TERM

3
จะผ่าน 2> / dev / null เป็นตัวแปรได้อย่างไร
ฉันมีรหัสนี้ใช้งานได้: # Hide irrelevant errors so chrome doesn't email us in cron if [[ $fCron == true ]] ; then google-chrome --headless --disable-gpu --dump-dom \ "$RobWebAddress" > "$DownloadName" 2>/dev/null else # Get silly error messages when running from terminal google-chrome --headless --disable-gpu --dump-dom \ "$RobWebAddress" > "$DownloadName" fi ถ้าฉันพยายามย่อให้สั้นลงเช่นนี้: # …

2
นามแฝงหลายบรรทัดในทุบตี
ฉันมีสคริปต์ต่อไปนี้ เป็นกรณีทดสอบง่ายๆที่aมีค่าสตริงใด ๆ และbควรจะเป็นเส้นทาง #!/bin/bash alias jo "\ echo "please enter values "\ read a \ read -e b \ echo "My values are $a and $b"" อย่างไรก็ตามเมื่อใดก็ตามที่ฉันพยายามเรียกใช้. /sample.sh ฉันได้รับข้อผิดพลาดต่อไปนี้: ./sample.sh: line 3: alias: jo: not found ./sample.sh: line 3: alias: echo please: not found ./sample.sh: line 3: alias: enter: …

5
bash ตำแหน่งไฟล์ประวัติเอาต์พุตเชลล์
เปลือก bash เก็บเซสชันเทอร์มินัลจริงไว้ที่ไหน ฉันต้องการอ่านเอาต์พุตของคำสั่งที่ฉันใช้ก่อนหน้านี้ ทั้งหมดที่ฉันสามารถหา googling คือวิธีการเก็บผลลัพธ์ของคำสั่ง เนื่องจากเอาต์พุตจะแสดงบนหน้าจอจึงต้องเก็บไว้ที่ใดที่หนึ่ง ดังนั้นคำถามของฉันคือ: ที่ไหน

1
ไม่สามารถใช้ CTRL + ซ้าย / ขวาใน Bash Terminal ได้อีก
ฉันมักจะใช้CTRL+ LeftและCTRL+ Rightเพื่อนำทางระหว่างคำในบรรทัดคำสั่ง ฉันเปลี่ยนแล็ปท็อปของฉันในเช้านี้และไม่สามารถทำเช่นนั้นได้อีก แต่รหัสอินพุตCTRL+ Leftจะถูกพิมพ์ในเทอร์มินัล Ie: นี่คือผลลัพธ์ของฉันเมื่อฉันพยายามนำทางด้วยCTRL+ Left: ~ $ test test ;5D;5D;5D อยากรู้อยากเห็นฉันยังคงสามารถใช้CTRL+ Left/ Rightเพียงแค่ปรับใน VIM

5
ฉันสามารถเปลี่ยนไดเรกทอรีเป็นไดรฟ์ Windows ใน Ubuntu Bash บน WSL ได้หรือไม่
ฉันเป็นมือใหม่สำหรับ Ubuntu และโดยทั่วไปแล้วต้องใช้ Ubuntu สำหรับแพ็คเกจ Python e:/username/folder1/folder2/python.pyผมอยากจะเรียกใช้ไฟล์หลามในการพูด bash: cd./e: No such file or directoryฉันพยายามทุกวิธีทางออนไลน์และการตอบกลับเพียงอย่างเดียวคือ ฉันไม่แน่ใจว่าเป็นเพราะ bash windows หรือ virtualenv เมื่อฉันใช้ทุบตีบน Ubuntu บน Windows, มันบอกว่าls มันบอกว่า ฯลฯ เปลี่ยนแปลง directory เล็ก ๆ น้อย ๆ แต่ไม่ได้ไดรฟ์อื่นหรือโฟลเดอร์ฉันต้องการมันเพื่อหาVIRTUALENV_DIRcd/home/usernamecd ..

2
การค้นหาประวัติคำสั่งก่อนหน้าด้วย PageUp ใน 14.04
ฉันได้รับการทำงานก่อนหน้านี้ (ฉันเชื่อว่ามันเป็น 15.10 ฉันเพิ่งลดระดับเป็น LTS 14.04) ตามโพสต์นี้ต่อไปนี้ควรทำงาน ~ $ cat ~/.inputrc "\e[A":history-search-backward "\e[B":history-search-forward แต่เมื่อฉันบันทึก.inputrcและเปิดเทอร์มินัลใหม่ให้พิมพ์ PageUp หรือ PageDown เพียงพิมพ์อักขระตัวหนอน~ในเทอร์มินัลแทนที่จะทำการค้นหา ความช่วยเหลือใด ๆ ที่ชื่นชม

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