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

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

3
จะรันสคริปต์ได้อย่างไรเมื่อผู้ใช้รายอื่นเปลี่ยนไดเรกทอรี?
ฉันรู้ว่ามีการอภิปรายเล็กน้อยเกี่ยวกับหัวข้อที่คล้ายกับเรื่องนี้ แต่นี่คือสิ่งที่ฉันพยายามจะทำ ฉันมีไดเรกทอรีเฝ้าดูชื่อwatchedและเมื่อใดก็ตามที่มีการเพิ่มไฟล์ลงในไดเรกทอรีนั้นฉันต้องการเรียกสคริปต์ที่เรียกใช้syncbh.shซึ่งจะนำไฟล์ออกจากไดเรกทอรีนั้นและอัปโหลดไปยังเซิร์ฟเวอร์ระยะไกล ข้อแม้คือไฟล์นั้นถูกสร้างขึ้นในwatchedไดเรกทอรีโดยผู้ใช้รายหนึ่ง (user2) แต่สคริปต์จะถูกดำเนินการโดยผู้อื่น (user1) ฉันได้ลองใช้incronเพื่อทำสิ่งนี้ให้สำเร็จ แต่ยังคงพบปัญหาที่สำคัญเนื่องจากในขณะที่สคริปต์สามารถดำเนินการด้วยตนเองโดย user1 ที่มีสิทธิ์รูทincron daemon ไม่เคยถูกเรียกโดยอัตโนมัติโดยเหตุการณ์การสร้างไฟล์โดย user2 อื่น ฉันคิดว่าการที่ไม่ทราบว่าจะเป็นทางเลือกที่ดีกว่านี้หรือไม่ แต่ฉันไม่แน่ใจเกี่ยวกับการทำงานของไวยากรณ์นี้ หากมีวิธีที่ดีกว่าในการทำสิ่งนี้ให้สำเร็จหรือถ้าฉันใช้inoticomingไวยากรณ์คำสั่งจะขอให้มันดู/home/user1/watchedไดเรกทอรีและรันสคริปต์/usr/local/bin/syncbh.shถ้าไฟล์ถูกสร้าง / แก้ไขภายในไดเรกทอรีนั้น ความช่วยเหลือใด ๆ ที่จะได้รับการชื่นชมมาก

1
ตรงข้ามกับคำสั่ง eject?
ฉันมีภาพเป็นจำนวนมากและฉันก็อยากรู้อยากเห็น ฉันสามารถนำออกด้วยคำสั่งนำออก คำสั่งใดใส่ถาดดิสก์กลับเข้าไปในไดรฟ์ซีดี ใช่มันเป็นประเภทที่สามารถดึงถาดกลับเข้าไปได้ฉันค้นหาหน้านำแผ่นออกและเดาตามคำสั่ง แต่ฉันไม่สามารถหาได้

1
อะไรคือข้อแตกต่างระหว่างการเรียกใช้งานเชลล์สคริปต์โดยใช้“ source file.sh”,“ ./file.sh”,“ sh file.sh”,“ ./file.sh”?
ดูรหัส: #!/bin/bash read -p "Eneter 1 for UID and 2 for LOGNAME" choice if [ $choice -eq 1 ] then read -p "Enter UID: " uid logname=`cat /etc/passwd | grep $uid | cut -f1 -d:` else read -p "Enter Logname: " logname fi not=`ps -au$logname | grep -c bash` echo …

3
กำหนดสีล่วงหน้าสำหรับเทอร์มินัลหรือไม่
ฉันพยายามจำว่าฉันสามารถกำหนดสีไว้ล่วงหน้าภายใน.bashrcไฟล์ได้อย่างไรเพื่อที่พวกเขาจะได้รับการเรียกเมื่อฉันทำ${RED}เช่นนั้น ฉันจำไม่ได้ว่านี่เป็นวิธีที่ถูกต้องหรือไม่ แต่เป็นเช่นนี้ถ้าฉันจำได้ NC="\033[0;0;0m" # no color or formatting RED="\033[1;49;91m" # color red BLU="\033[1;49;94m" # color blue GRN="\033[1;49;32m" # color green อีกฉันจำได้ว่ากำลังใช้อยู่functionดังนั้นจึงสามารถใช้ได้ทุกที่ทุกเวลา ฉันมีไฟล์ที่แสดงให้ฉันเห็นถึงวิธีการทำ แต่ฉันทำไฟล์นี้หายซึ่งแสดงวิธีการทำและฉันจำไม่ได้ว่ามันเป็นอย่างไร


1
ฉันจะค้นหาประวัติคำสั่งได้อย่างไรหากผู้ใช้ใช้ช่องว่างหน้าคำสั่ง?
เรามีวิธีใดบ้างในการค้นหาประวัติคำสั่งถ้าผู้ใช้ใช้พื้นที่ก่อนคำสั่งใด ๆ ใน bash เพราะถ้าผู้ใช้ใช้พื้นที่ก่อนคำสั่งใด ๆ มันจะไม่แสดงในประวัติ?
13 bash 

6
จุดประสงค์ของ bash Null-operator“:”, เครื่องหมายทวิภาคคืออะไร?
จุดของโอเปอเรเตอร์ "null" ในสคริปต์ BASH คืออะไร ฉันเข้าใจว่ามันถูกใช้เป็นตัวยึดตำแหน่งตามifคำสั่งเมื่อคุณไม่มีอะไรจะพูด แต่ต้องการคำสั่งเพื่อให้โปรแกรมทำงานอย่างถูกต้อง แต่การใช้โดยรวมของมันคืออะไร? คุณจะใช้มันเมื่อไหร่? เมื่อไหร่จึงจะเหมาะสมที่จะใช้มัน?
13 bash  scripts  syntax 

2
ไฟล์ curl .gz และไปป์สำหรับการคลายการบีบอัด
ฉันกำลังพยายามดาวน์โหลด.gzไฟล์บางไฟล์ (ไม่ใช่ NB .tar.gz) จาก URL ที่กำหนดและขยายไฟล์เหล่านั้นเพื่อเขียนทับไฟล์ที่มีอยู่ถ้ามี สำหรับการดาวน์โหลดแต่ละครั้งฉันลองต่อไปนี้: curl -O $URL | gunzip -f อย่างไรก็ตามสิ่งนี้ไม่ทำงานตามที่ล้มเหลวด้วย: gzip: stdin: unexpected end of file. ฉันใช้ชุดคำสั่งนี้ในสคริปต์เชลล์ bash หากฉันรั่วไหลคำสั่งออกเป็นสองขั้นตอนอย่างชัดเจนนั่นคือขั้นแรกให้ดาวน์โหลดไฟล์จากนั้นขยายขนาด.gzไฟล์มันจะทำงาน เหตุใดรุ่นของ piped จึงใช้งานไม่ได้
13 bash  scripts  curl  pipe  gzip 

7
วิธีการทำให้อาร์กิวเมนต์เป็นตัวเลือกในทุบตี?
ในฟังก์ชั่นด้านล่างมี 9 ข้อโต้แย้ง: SUM() { echo "The sum is $(($1+$2+$3+$4+$5+$6+$7+$8+$9))" } ฉันต้องการที่จะทำให้ข้อโต้แย้งที่สองเพื่อถัดไป (3..9) กลายเป็นข้อโต้แย้งที่ไม่จำเป็น เมื่อฉันเรียกใช้ฟังก์ชันที่มี 2 อาร์กิวเมนต์ฉันได้รับข้อผิดพลาด: SUM 3 8 bash: 3+8+++++++: syntax error: operand expected (error token is "+") หมายเหตุ BOLD : อาร์กิวเมนต์แรกและอาร์กิวเมนต์ที่สองคืออาร์กิวเมนต์แรงและไม่บังคับสำหรับฟังก์ชัน ฉันต้องการอาร์กิวเมนต์ที่สองต่อไปเป็นตัวเลือกและเมื่อฉันเรียกใช้ฟังก์ชันน้อยกว่า 2 args ฟังก์ชันจะต้องส่งคืนผลลัพธ์
13 bash  functions 

4
คำสั่ง build โดยการต่อสตริงเข้าใน bash
ฉันมีสคริปต์ทุบตีที่สร้างบรรทัดคำสั่งในสตริงตามพารามิเตอร์บางอย่างก่อนดำเนินการในครั้งเดียว ชิ้นส่วนที่ถูกต่อเข้ากับสตริงคำสั่งควรถูกคั่นด้วยไพพ์เพื่ออำนวยความสะดวกในการ "สตรีม" ของข้อมูลผ่านแต่ละส่วนประกอบ ตัวอย่างที่ง่ายมาก: #!/bin/bash part1=gzip -c part2=some_other_command cmd="cat infile" if [ ! "$part1" = "" ] then cmd+=" | $part1" fi if [ ! "$part2" = "" ] then cmd+=" | $part2" fi cmd+="> outfile" #show command. It looks ok echo $cmd #run the command. fails with pipes …
13 bash  pipe 

6
สับสนกับคำสั่ง printf หรือไม่?
ฉันต้องพิมพ์สามบรรทัดต่อไปนี้ในหนึ่งคำสั่งพิมพ์โดยไม่ต้องใช้คำสั่ง echo ดังนั้นฉันได้เลือกคำสั่ง printf นี่คือสามบรรทัด: Different characters can be represented and supported in the print command, for example: x-y, X+Y, –, +, <, >, %, $, #, &. สิ่งที่ฉันได้ทำไปคือ: printf " Different characters can be represented and supported in the print command, for example: x-y, X+Y, –, +, <, >, …

3
เปรียบเทียบสองสตริงใน Bash
ฉันต้องการสร้างสคริปต์ที่ลบไดเรกทอรีด้วยrmdirหลังจากยืนยันด้วยรหัสผ่านที่ใช้readในการตั้งค่าตัวแปร จนถึงตอนนี้ฉันมีสิ่งนี้: #!/bin/bash -x echo "Password:" read -t 30 S1 S2='55555' if [ $S1=$S2 ]; then rmdir /home/william/test else echo "fail" sleep 10 fi ดังนั้นฉันต้อง-xลองแก้ไขมัน แต่ทุกครั้งที่สคริปต์ไม่สามารถสะท้อน (ถ้าฉันใส่รหัสผิด) หรือมันจะไม่ลบไดเรกทอรีที่จำเป็น หากใครบางคนมีสคริปต์ที่แก้ไขได้ที่ฉันสามารถใช้หรือถ้าคุณสามารถชี้ให้เห็นปัญหากับสคริปต์ปัจจุบันที่จะดี
13 bash  scripts  password 

1
วิธีที่เร็วที่สุดในการสร้างไฟล์จากเทอร์มินัล
วิธีที่ง่ายที่สุดในการสร้างไฟล์โดยใช้บรรทัดคำสั่งคืออะไร? ฉันมักจะใช้: touch filename แต่นี่เป็นวิธีที่ง่ายที่สุด / เร็วที่สุด?

2
รอให้คำสั่ง dd เขียนไปยังดิสก์อย่างสมบูรณ์
ฉันใช้คำสั่ง dd เพื่อสร้าง usb ที่สามารถบู๊ตได้จากไฟล์ iso: sudo dd if=~/Desktop/ubuntu.iso of=/dev/sdx bs=1M หลังจากกดเข้าก็จะออกและให้ฉัน: 915+0 records in 915+0 records out 959447040 bytes (959 MB) copied, 0.539375 s, 1.8 GB/s มันเหมือนกับการทำงานในพื้นหลังเพราะฉันเห็นว่าแฟลชไดรฟ์ทำงานได้ ในที่สุดมันจะหยุดการคัดลอกและฉันสามารถลบไดรฟ์ได้สำเร็จ แต่คำถามคือทำไมคำสั่ง dd ไม่รอให้การคัดลอกเสร็จสิ้น ทำไมมันทำงานในพื้นหลัง และฉันจะรอได้อย่างไร

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

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