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

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

1
บรรทัดใหม่ใน heredoc หายไปในไฟล์
ฉันกำลังสะท้อน heredoc เป็นไฟล์ แต่ตัวแบ่งบรรทัดหายไป เรียกใช้สคริปต์นี้ #!/bin/bash NAME="$1" mkdir -p $NAME FILE=$(cat <<SETVAR name = "$NAME" type = "test" SETVAR ) echo $FILE > $NAME/$NAME.txt ด้วย arg: foo ให้ผลลัพธ์ไฟล์ที่ foo / foo.txt ที่มี name = "foo" type = "test" ความคิดใด ๆ ขอบคุณ
12 bash  newlines 

3
Cygwin bash sed ล็อคไฟล์ของฉัน
เมื่อฉันเปลี่ยนไฟล์ใน cygwin bash ด้วยคำสั่ง sed ไฟล์จะถูกล็อค ทำซ้ำ: เปิดcmdและcdสู่ไดเรกทอรีที่ไม่ใช่ผู้ใช้ (fe temp) echo aaa > test.txt เปิดใน texteditor เพิ่มบรรทัดลอง save => works %CYGWIN_HOME%\bin\bash -c "sed -i 's/aaa/bbb/' test.txt" ใน texteditor เพิ่มอีกหนึ่งบรรทัดแล้วลองบันทึก => "การเข้าถึงถูกปฏิเสธ" WTF ?! ฉันจะ sed ไฟล์ได้อย่างไรโดยไม่ล็อคหรือปล่อยตัวจัดการไฟล์หลังจากนั้น? สิทธิ์การรักษาความปลอดภัยของ Windows ดูเหมือนว่าจะเมาไฟล์ทั้งหมด: สิทธิ์ก่อน: สิทธิ์หลังจาก: มันทำงานได้ในไดเรกทอรีผู้ใช้ ( Desktop) ฉันตรวจสอบไฟล์ด้วย LockHunter แล้ว แต่ไม่มีกระบวนการใดปรากฏขึ้นเพื่อล็อคไฟล์ Cygwin คำถามที่พบบ่อยกล่าวถึงการแทรกแซงกับบางโปรแกรม …
12 windows  bash  sed  cygwin 

1
ฉันสามารถสร้าง "นามแฝงไดเรกทอรี" ที่กำหนดเองเช่น '~' ใน bash ได้หรือไม่
ในทุบตีฉันสามารถไปยังไดเรกทอรีบ้านของฉันมีcd ~จริงและอ้างถึงไดเรกทอรีบ้านของฉันที่มีคำสั่งใด ๆ ~กับ ฉันสามารถสร้าง "นามแฝงไดเรกทอรีใหม่" ที่กำหนดเองเพื่ออ้างอิงไปยังไดเรกทอรีอื่นได้หรือไม่ ตัวอย่างสมมุติ: make_alias "~~" /mnt/photon/work/foo_project/ cp ~/home.png ~~/set_8/home_4.png จะทำอย่างไรถ้าเป็นเช่นนั้น ถ้ามันไม่สามารถทำได้มันเป็นเพราะการออกแบบและทำไมเป็นเช่นนั้น? ยินดีที่ได้: ที่ไหนและอย่างไร~มีการตั้งค่าและผูกพันกับ "~" นี้หรือไม่?
12 bash 

6
Windows 10 linux bash shell ctrl + space ไม่ได้ตั้งเครื่องหมายใน Emacs
ใน Windows 10 ฉันติดตั้งระบบย่อยสำหรับ Linux Bash แต่ฉันมีปัญหากับทางลัดใน Emacs Ctrl+ spaceไม่ได้กำหนดจุดมาร์กเกอร์ สิ่งที่ฉันพยายามและไม่ได้ช่วย: ฉันพยายามยกเลิกการเลือก "เปิดใช้งานคีย์ลัด" ในเมนูคุณสมบัติสำหรับคอนโซลของ Windows ฉันพยายามใช้ Terminal ConEmu ที่แตกต่างกันโดยไม่ประสบความสำเร็จ ฉันสงสัยว่ามันเกี่ยวข้องกับ ubuntu อย่างใดซึ่งมีปัญหาคล้ายกันกับ ctrl + space และ windows linux bash กำลังใช้ที่เก็บ ubuntu

2
ข้อแตกต่างเมื่อใช้ backticks ในเครื่องหมายคำพูดคู่และเครื่องหมายคำพูดเดี่ยวใน Bash
ทำไมการประมวลผลสองรายการต่อไปนี้จึงแตกต่างกันในเอาต์พุต (ฉันต้องการอัญประกาศคู่สำหรับตัวแปรในคำสั่งในที่สุดของฉัน) $ sudo su -c "echo `cat /root/root_file`" cat: /root/root_file: Permission denied $ sudo su -c 'echo `cat /root/root_file`' Yay, highly classified content!

1
วิธีการลบตัวอักษรที่อยู่ตรงกลางของสตริงในทุบตี
ในทุบตีฉันมีสตริงและฉันพยายามลบตัวละครที่อยู่ตรงกลางของสตริง ฉันรู้ว่าเราสามารถลบตัวละครจากจุดเริ่มต้นหรือจุดสิ้นสุดของสตริงเช่นนี้ myVar='YES' myVar="${myVar#'Y'}" myVar="${myVar%'S'}" แต่ฉันจะลบอันที่ตรงกลางออกได้อย่างไร
12 bash 

1
rm -r ติดตามลิงค์สัญลักษณ์หรือไม่?
หากฉันมีลิงก์สัญลักษณ์ในไดเรกทอรีย่อยบางส่วนของฉันและตัดสินใจที่จะลบ driectory และเนื้อหาซ้ำ ๆ ซ้ำ ๆ สิ่งนั้นจะลบรายการที่เชื่อมโยงสัญลักษณ์ในต้นไม้หรือไม่?
12 bash  unix 

3
สำรองบุ๊คมาร์ค Firefox และสคริปต์ทุบตีไฟล์ส่วนบุคคลอื่น ๆ
ฉันกำลังย้ายจาก Windows ไปยัง Ubuntu สำหรับเดสก์ท็อปส่วนบุคคลของฉันและฉันต้องการทราบวิธีง่าย ๆ ในการสำรองข้อมูลส่วนบุคคลเช่นบุ๊กมาร์กของ Firefox เอกสารส่วนตัว ฯลฯ ... ใน Windows ฉันกำลังคัดลอกทุกอย่างด้วยตนเองและใน Ubuntu ฉันต้องการสร้างสคริปต์ทุบตีเพื่อทำโดยอัตโนมัติ ฉันไม่มีความรู้เกี่ยวกับการทุบตีสคริปต์ทุบตีนอกเหนือจากการสร้างไฟล์และทำให้มันปฏิบัติและตัวอย่างง่ายๆนี้: #!/bin/bash cp /files/file.doc /media/flashdrive/ ฉันจะตรวจหาโปรไฟล์ปัจจุบันของฉันโดยอัตโนมัติได้อย่างไร (ปัจจุบันฉันมีโปรไฟล์ 3 โปรไฟล์บนคอมพิวเตอร์ของฉันหนึ่งโปรไฟล์ที่ฉันไม่ได้ใช้หนึ่งโปรไฟล์สำหรับภรรยาของฉันที่ไม่มีบุ๊กมาร์กและของฉัน)
12 windows  linux  bash  backup 

2
ทำให้ bash TAB เสร็จสิ้นมากขึ้นเช่น cmd.exe [ซ้ำกัน]
คำถามนี้มีคำตอบอยู่ที่นี่แล้ว : มีวิธีในการทำให้แท็บ Bash เป็นมิตรมากขึ้นหรือไม่ (1 คำตอบ) ปิดให้บริการใน6 ปีที่ผ่านมา ฉันสงสัยว่ามีวิธีที่จะทำลักษณะการหมุนในลักษณะทุบตีคล้ายกับ behavoir บน cmd.exe หรือไม่ฉันพบว่ามันเพิ่มความเร็วในการป้อนคำสั่ง
12 linux  bash  shell  command-line  sh 

8
การแจ้งเตือนคำรามสำหรับการทำงานของเชลล์ให้สำเร็จ
(เฉพาะ OSX) ฉันเช่นเดียวกับคนอื่น ๆ นอกเหนือจากตัวฉันมักจะพบว่าตัวเองเตะกระบวนการในเปลือกที่ใช้เวลาหนึ่งหรือสองนาทีให้เสร็จสมบูรณ์ (ตัวอย่าง svn ขนาดใหญ่กระทำ) ในช่วงเวลานั้นฉันมักจะแท็บ alt และรีเฟรช reddit / slashdot / wikipedia / อะไรก็ตาม มันจะเป็นการดีถ้ามีบางสิ่งที่ตั้งค่าไว้ซึ่งโพสต์การแจ้งเตือนคำรามเมื่อกระบวนการเชลล์จบลง ในโลกอุดมคติของฉันมันจะทำงานดังนี้: "หากกระบวนการเพิ่งออกจากแท็บที่เปิดอยู่ในเทอร์มินัลให้โพสต์การแจ้งเตือนคำราม" ใครมีบางอย่างเช่นการตั้งค่านี้
12 macos  bash  shell  growl 

5
Cygwin - cd ในสคริปต์ทุบตี
ฉันยังใหม่กับการใช้ Cygwin ดังนั้นขอโทษถ้านี่เป็นคำถามที่มือใหม่ ฉันมีสคริปต์ทุบตีที่ฉัน "cd" ไปยังไดเรกทอรีแล้วทำอะไรในไดเรกทอรีนั้น อย่างไรก็ตามคำสั่ง cd ล้มเหลวด้วย "ไม่มีไฟล์หรือไดเรกทอรี / c / code / blah / blah" ถ้าฉันคัดลอกบรรทัด cd ลงในเชลล์พรอมต์โดยตรงมันก็ใช้ได้ดี มันล้มเหลวในสคริปต์ [แก้ไข] ตามที่ร้องขอฉันได้เพิ่มบรรทัดจริงจากสคริปต์: #!/bin/bash cd /c/Code/Project ขอบคุณสำหรับความช่วยเหลือใด ๆ กับ Dan นี้
12 bash  cygwin 

4
Bash shell แท็บเสร็จสมบูรณ์อย่าขยาย ~
ฉันใช้Tabปุ่มมากเมื่อใช้เชลล์ (ทุบตี) แต่ฉันก็รู้สึกหงุดหงิดที่~จะขยายไปถึง/home/"user"เสมอ ฉันไม่คิดว่ามันจะเป็นเช่นนี้เสมอไป มีวิธีใดที่จะหยุดพฤติกรรมนี้ ตัวอย่าง: cj@zap:~$ ls ~/ กด Tab cj@zap:~$ ls /home/cj/ ฉันต้องการที่จะยังคงมีและไม่จบลงด้วย~//home/cj/

8
การสร้างสคริปต์ BASH `for` จัดการชื่อไฟล์ด้วยช่องว่าง (หรือวิธีแก้ปัญหา)
ในขณะที่ฉันใช้ BASH มาหลายปีประสบการณ์ของฉันกับการเขียนสคริปต์ BASH ค่อนข้าง จำกัด รหัสของฉันเป็นดังนี้ $OUTDIRมันควรจะคว้าโครงสร้างไดเรกทอรีทั้งจากภายในไดเรกทอรีปัจจุบันและทำซ้ำมันเข้าไป for DIR in `find . -type d -printf "\"%P\"\040"` do echo mkdir -p \"${OUTPATH}${DIR}\" # Using echo for debug; working script will simply execute mkdir echo Created $DIR done ปัญหาคือนี่คือตัวอย่างของโครงสร้างไฟล์ของฉัน: $ ls Expect The Impossible-Stellar Kart Five Iron Frenzy - Cheeses... Five …
12 bash  find  filenames 

2
ไดเรกทอรี“ //” คืออะไร
บนเครื่อง linux ต่างๆที่คุณสามารถทำได้ cd / และ cd // เชลล์จะบอกว่าไดเรกทอรีปัจจุบันคือ '/' หรือ '//' หลังจากใช้คำสั่งที่เกี่ยวข้อง ดังนั้นคำถามคือ: อะไรคือความแตกต่างระหว่าง '/' และ '//' และถ้าคำตอบคือ 'ไม่แตกต่างกัน' แล้วทำไม '//' แสดงแตกต่างจาก '/' BTW cd /// cd //// cd ///// ผลลัพธ์ทั้งหมดในเชลล์บอกว่าไดเรกทอรีปัจจุบันคือ '/' นี่คือตัวอย่างเซสชัน: [user@host /]$ cd // [user@host //]$ cd / [user@host /]$ cd // [user@host //]$ cd / …

3
Bash on Snow Leopard ไม่เชื่อฟังสีของเทอร์มินัล
กับรุ่นใหม่ของเสือดาวหิมะ OS X GNU bash, version 3.2.48(1)-release (x86_64-apple-darwin10.0)อัพเกรดรุ่นทุบตีไป ตอนนี้ฉัน.bashrcตั้งค่าต่อไปนี้: # Colors export TERM=xterm-color export GREP_OPTIONS='--color=auto' GREP_COLOR='1;32' export CLICOLOR=1 export LSCOLORS=ExGxFxDxCxHxHxCbCeEbEb # Setup some colors to use later in interactive shell or scripts export COLOR_NC='\e[0m' # No Color export COLOR_WHITE='\e[1;37m' export COLOR_BLACK='\e[0;30m' export COLOR_BLUE='\e[0;34m' export COLOR_LIGHT_BLUE='\e[1;34m' export COLOR_GREEN='\e[0;32m' export COLOR_LIGHT_GREEN='\e[1;32m' export …

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