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

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

1
AWK: ทำไม $ (cat) ใช้งานได้กับ stdin แต่ $ * ไม่ได้
echo '((3+(2^3)) * 34^2 / 9)-75.89' | awk "BEGIN{ print $(cat) }" ไวยากรณ์ข้างต้นทำงานได้ดีกับผลลัพธ์ที่คำนวณ '1337' echo '((3+(2^3)) * 34^2 / 9)-75.89' | awk "BEGIN{ print $* }" แต่ไวยากรณ์ข้างต้นไม่ทำงานแม้ว่าจะไม่มีข้อผิดพลาด กรุณาให้คำแนะนำ
9 bash  awk 

2
ใช้ AWK เพื่อรับคอลัมน์ที่สอง
ฉันดูเหมือนจะไม่ได้รับคำสั่ง awk เพื่อรับคอลัมน์ที่สองของข้อมูล รหัสทุบตี: filter_data=$(awk "{if(/$filter:/) print $2}" < scanresults_temp.txt) printf "$filter_data \n" ตัวแปร $ filter เป็นค่าของ Download หรือ Upload ที่ถูกส่งเข้าสู่เชลล์สคริปต์ ดังนั้น awk ใช้คำว่า Download หรือ Upload เพื่อค้นหาแถวที่ถูกต้อง เนื้อหาของไฟล์คือ: Testing download speed................................................................................ Download: 51.13 Mbit/s Testing upload speed................................................................................................ Upload: 57.38 Mbit/s ฉันพยายามที่จะได้รับเพียงตัวเลขและไม่ได้อะไรอื่นอดีตและ51.1357.38
9 bash  grep  sed  awk 

3
สำหรับการวนซ้ำในโฟลเดอร์ที่มีอักขระ \ n อยู่ในชื่อ
ฉันมีบางโฟลเดอร์ที่มี\nตัวอักษรมันชื่อของพวกเขา ตัวอย่างเช่น: $ ls ''$'\n''Test' อ้างถึงโฟลเดอร์ที่มีชื่อทดสอบและบรรทัดว่างเปล่าหน้าชื่อ ดังนั้นเมื่อฉันเรียกใช้สคริปต์บางอย่างเช่นนี้ในไดเรกทอรีหลัก: while IFS= read -r d; do rmdir $d done < <(find * -type d) มันแสดงให้เห็น: rmdir: failed to remove '': No such file or directory rmdir: failed to remove 'Test': No such file or directory เพราะมันทำงานสองครั้งเปิด\nและอีกครั้งTestเพราะชื่อโฟลเดอร์มีสองบรรทัด ดังนั้นฉันจะแก้ปัญหานี้อย่างไรสคริปต์รู้\nTestเป็นเพียงโฟลเดอร์เดียว?

4
Bash: วิธีการตรวจสอบว่าเทอร์มินัลถูกเปิดโดยแอปของบุคคลที่สาม
ฉันต้องการสคริปต์ทุบตีของฉัน (โดยเฉพาะของฉัน~/.bashrc) ที่จะทำอะไรเฉพาะในกรณีที่เปิดสถานีโดยฉันโดยตรงและทำอย่างอื่นถ้ามันถูกเปิดผ่านแอพเช่น VS Code ฉันจะทราบได้อย่างไรว่าเกิดอะไรขึ้น มีตัวแปรสำหรับสิ่งนั้นหรือไม่? ขอบคุณล่วงหน้า.

1
เปลี่ยนสีของตัวอักษรเฉพาะในชื่อผู้ใช้ใน PS1 ของ bash
ฉันต้องการเปลี่ยนสีของตัวอักษรที่ระบุในชื่อผู้ใช้ของฉันถูกแสดงโดย PS1 ในทุบตี เช่นถ้าฉัน\uเป็นrahulฉันต้องการให้จดหมายhเป็นสีฟ้าและพักเป็นสีขาว ฉันจะรู้ว่า\uหมายถึงชื่อผู้ใช้และเพิ่มสีสันให้กับทั้ง 'นิติบุคคล' [\033[38;5;15m\]จะกระทำโดยการเพิ่มแท็กเช่น: ถ้าเป็นไปได้ฉันขอทราบวิธีการเดียวกันได้ไหม

2
ใช้กรณีที่ชื่อไฟล์สคริปต์มีหมายเลขนำหน้าเพื่อกำหนดลำดับการดำเนินการ
ฉันกำลังมองหาเอกสารหรือกรณีการใช้งานที่ใน Linux มีไดเรกทอรีที่มีเชลล์สคริปต์ที่แต่ละชื่อไฟล์จะถูกนำด้วยตัวเลขและไฟล์จะทำงานในลำดับที่เฉพาะเจาะจง อนุสัญญานี้เรียกว่าอะไรและใช้ที่ไหน ตัวอย่างเช่น: 0001-motd.sh 0002-proxy.sh 0300-ssh.sh ฉันรู้ว่าฉันเคยเห็นสิ่งนี้มาก่อนไม่แน่ใจว่ามันถูกเรียกว่าอะไรหรือที่ไหน



3
นำออก 'การเข้าถึงปฏิเสธ "เส้น
เมื่อฉันใช้findเพื่อดูไฟล์ทั้งหมดที่ไฟล์ PDF ในไดเรกทอรีที่ผมเห็น/home access deniedเพื่อกำจัดพวกเขาฉันพยายาม: find /home -iname "*.pdf" | grep -v "access denied" อย่างไรก็ตามผลลัพธ์เหมือนกัน ฉันจะกำจัดบรรทัดเหล่านี้ได้อย่างไร

3
ไม่สนใจ sudo ในสคริปต์ทุบตี
ฉันมีสคริปต์ทุบตีขนาดเล็ก: #!/bin/bash touch dummy.txt ถ้าผมรันสคริปต์นี้กับsudoแล้วมันจะสร้างdummy.txtซึ่งจะเป็นรากที่มีการป้องกัน สิ่งที่ฉันต้องการจะทำคือ: ไม่ว่าสคริปต์นี้จะถูกเรียกใช้โดยใช้sudoหรือผู้ใช้ปกติไฟล์ไม่dummy.txtควรได้รับการป้องกัน
9 14.04  bash  scripts  sudo 

2
บรรทัดเส้นทางการส่งออกใน. bashrc ทำอะไร
ฉันไม่ได้เป็นเช่นนั้นใน Linux และฉันมีข้อสงสัยดังต่อไปนี้การกวดวิชา ฉันต้องแก้ไขbashrcไฟล์ ไฟล์นี้มีการตั้งค่าชนิดใดบ้าง? ฉันคิดว่าสิ่งที่เกี่ยวข้องกับสภาพแวดล้อมเปลือก bash แต่ฉันไม่แน่ใจเกี่ยวกับมัน ฉันต้องแทรกบรรทัดนี้: export PATH=$HOME/.local/bin:$HOME/.local/usr/bin:$PATH บรรทัดนี้ทำอะไรกันแน่ ฉันคิดว่าexportคำสั่งนั้นถูกใช้เพื่อสร้างตัวแปรใหม่ที่พร้อมใช้งานสำหรับโปรแกรมอื่น แต่สายนี้ทำอะไรกันแน่ คือPATHชื่อของตัวแปรที่ฉันกำหนด? คือ$HOMEอะไร สิ่งที่หมายถึง:สัญลักษณ์ระหว่างPATH=$HOME/.local/binและ$HOME/.local/usr/binและ$PATHส่วนในการแสดงออกของก่อนหน้านี้หรือไม่? การแสดงออกนี้หมายความว่าอะไร?

4
ฟังก์ชั่นทุบตีของ Ubuntu .. ข้อผิดพลาดทางไวยากรณ์:“ (” หรือ“}” ไม่คาดคิด
กำลังพยายามเรียกใช้ฟังก์ชันทุบตี แต่พบข้อผิดพลาดทางไวยากรณ์: "(" ไม่คาดคิดฉันได้ลองลบวงเล็บวงเล็บ ฯลฯ ฯลฯ ... ดูเหมือนว่าจะไม่มีอะไรทำงาน $ bash --version GNU bash, version 4.3.46(1) release #!/bin/bash function hello () { echo "Hello world" }
9 bash  scripts 


2
รันสคริปต์ bash ทุกครั้งเมื่อเรียกใช้งานบรรทัดคำสั่ง
ฉันเป็นผู้ใช้ Ubuntu / Linux ใหม่ฉันต้องการถามคำถามตามชื่อของฉันด้านบน ตัวอย่างเช่นฉันมีไฟล์ทุบตี./scriptฉันต้องการให้มันทำงานโดยอัตโนมัติเมื่อฉันพิมพ์บรรทัดคำสั่งใด ๆ เมื่อฉันรันบรรทัดคำสั่งpwdแล้ว./scriptจะถูกดำเนินการ เมื่อฉันพิมพ์บรรทัดคำสั่งถัดไปls -laแล้ว./scriptจะดำเนินการอีกครั้ง

6
ชุดคำสั่ง sed ทำงานบนบรรทัดคำสั่ง แต่ไม่อยู่ในสคริปต์
ฉันกำลังทำงานกับ.csvผลลัพธ์ของแบบสอบถามข้อมูล SEซึ่งมีลักษณะเช่นนี้ (เฉพาะกับ 5022 รายการ): "{ ""id"": 281952, ""title"": ""Flash 11.2 No Longer Supported by Google Play"" }" "{ ""id"": 281993, ""title"": ""Netbeans won't open in Ubuntu"" }" (และมี^Mจุดสิ้นสุดบรรทัดระหว่าง [หมายเลข] และ "" ชื่อ "") ฉันต้องการให้มันเป็นแบบนี้: 281952,Flash 11.2 No Longer Supported by Google Play 281993,Netbeans won't open in Ubuntu ฉันแก้ไขสิ่งนี้ในโปรแกรมแก้ไขข้อความบางตัวซึ่งจะยังคงเป็นนิรนามได้อย่างง่ายดาย แต่ฉันต้องการสร้างสคริปต์เพื่อที่ฉันจะได้ไม่ต้องทำซ้ำทุกครั้งที่มีการรีเฟรชคิวรีและอื่น …

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