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

คำถามเฉพาะของ Bourne อีกครั้งของเชลล์ใน GNU เมื่อเทียบกับเชลล์ Bourne / POSIX อื่น ๆ สำหรับคำถามเกี่ยวกับเชลล์ Unix โดยทั่วไปให้ใช้ / เชลล์แท็กแทน

3
$ {1 +“ $ @”} หมายถึงอะไรในเชลล์สคริปต์และมันแตกต่างจาก“ $ @” อย่างไร
ในเอกสารประกอบ Perl, perlrun (1)แนะนำการเรียกใช้สคริปต์ Perl โดยใช้ส่วนหัวของสองภาษาเชลล์ / Perl: #!/bin/sh #! -*-perl-*- eval 'exec perl -x -wS $0 ${1+"$@"}' if 0; อะไร${1+"$@"}หมายถึง? ฉันลองใช้"$@"แทน (โดยใช้ Bash เป็น / bin / sh) และดูเหมือนว่าจะใช้งานได้เช่นกัน แก้ไข ${1:+"$@"}สองคำตอบด้านล่างบอกว่ามันควรจะเป็น ฉันรับรู้ถึง${parameter:+word}ไวยากรณ์ ("ใช้ค่าทางเลือก") ที่ระบุไว้ใน bash (1) อย่างไรก็ตามฉันไม่มั่นใจเพราะ ทั้งสองอย่าง${1+"$@"}และใช้"$@"งานได้ดีแม้ว่าจะไม่มีพารามิเตอร์ก็ตาม ถ้าฉันสร้าง simple.sh เป็น #!/bin/sh eval 'exec /usr/bin/perl -x -S -- $0 …
43 bash  shell  perl 

4
วิธีพิมพ์“ $” ในเอกสารที่นี่
ฉันจะสะท้อน "$" ใน here-doc ใน bash ได้อย่างไร? $ABC=home_dirตัวอย่างเช่นผมต้องการที่จะมีไฟล์ที่มีเนื้อหาบนเซิร์ฟเวอร์ระยะไกลเช่น $ ssh hostname sudo -s <<EOF echo "$ABC=home_dir" > file EOF แต่มันก็จะถือว่าเป็นตัวแปร ฉันจะพิมพ์ตัวอักษรได้$อย่างไร
43 bash  shell  quoting 

7
วิธีรับคำแรกของสตริง
เมื่อฉัน'echo *' ได้รับผลลัพธ์ต่อไปนี้: file1 file2 file3 ... สิ่งที่ฉันต้องการคือการเลือกคำแรก ฉันจะดำเนินการต่อได้อย่างไร
43 bash  string 

7
ฉันจะนับจำนวนครั้งของคำในไฟล์ข้อความด้วยบรรทัดคำสั่งได้อย่างไร
ฉันมีไฟล์ JSON ขนาดใหญ่ที่อยู่บนบรรทัดเดียวและฉันต้องการใช้บรรทัดคำสั่งเพื่อให้สามารถนับจำนวนคำที่เกิดขึ้นในไฟล์ได้ ฉันจะทำสิ่งนั้นได้อย่างไร
43 bash  command-line  grep  json 

7
เหตุใด [AZ] จึงตรงกับอักษรตัวพิมพ์เล็กใน bash
ในเชลล์ทั้งหมดที่ฉันรู้จักrm [A-Z]*ลบไฟล์ทั้งหมดที่ขึ้นต้นด้วยตัวอักษรตัวพิมพ์ใหญ่ แต่ด้วยการทุบตีสิ่งนี้จะลบไฟล์ทั้งหมดที่ขึ้นต้นด้วยตัวอักษร เนื่องจากปัญหานี้มีอยู่บน Linux และ Solaris ที่มี bash-3 และ bash-4 จึงไม่สามารถเป็นข้อบกพร่องที่เกิดจากตัวจับรูปแบบ buggy ใน libc หรือนิยามที่ตั้งที่พลาดไป พฤติกรรมที่แปลกและเสี่ยงนี้มีจุดประสงค์หรือเป็นเพียงข้อผิดพลาดที่มีอยู่ซึ่งไม่ได้ผสมกันมาหลายปีหรือไม่?
43 bash  shell  wildcards  locale 

3
วิธีการเพิ่ม / ลบองค์ประกอบไปยัง / จากอาร์เรย์ในทุบตี?
ฉันมีอาร์เรย์ที่มีองค์ประกอบบางอย่าง แต่ฉันต้องการผลักดันรายการใหม่ไปยังจุดเริ่มต้นของอาร์เรย์ ฉันจะทำอย่างไร

2
ใน bash scripting อะไรคือความแตกต่างระหว่างการประกาศและตัวแปรปกติ?
ในการทุบตีสคริปต์: เราสร้างตัวแปรโดยการตั้งชื่อ: abc=ok หรือเราสามารถใช้ declare declare abc=ok ความแตกต่างคืออะไร และทำไมทุบตีทำหลายวิธีในการสร้างตัวแปร?



2
`cat <> file` ทำงานอย่างไร
cat &lt; fileพิมพ์เนื้อหาของไฟล์ไปยัง stdout cat &gt; fileอ่าน stdin จนกว่าCtrl+ Dมีการตรวจพบและป้อนข้อความถูกเขียนไปยังแฟ้ม cat &lt;&gt; fileอย่างน้อยในเวอร์ชัน Bash ของฉันพิมพ์เนื้อหาของไฟล์อย่างมีความสุข (โดยไม่มีข้อผิดพลาด) แต่ไม่ได้แก้ไขไฟล์หรืออัปเดตการประทับเวลาการแก้ไข มาตรฐาน Bash แสดงให้เห็นถึงการเพิกเฉยที่ปรากฏ&gt;ในข้อความที่สามได้อย่างไรและที่สำคัญกว่านั้นคือการทำอะไร


3
เปลี่ยนเส้นทาง stderr ของคำสั่งต่อมาทั้งหมดโดยใช้ exec
ฉันมีไฟล์ทุบตีที่ฉันต้องการเปลี่ยนเส้นทางเอาต์พุตทั้งหมดไปยังไฟล์เดียวบันทึกการดีบักเช่นเดียวกับเทอร์มินัล ฉันต้องการเปลี่ยนเส้นทางทั้ง stdout และ stderr ไปยัง debug และบันทึกไว้สำหรับคำสั่งทั้งหมดในสคริปต์ ฉันไม่ต้องการเพิ่ม2&gt;&amp;1 | tee -a $DEBUGคำสั่งทุกคำสั่งในไฟล์ | tee -a $DEBUGฉันจะอยู่กับ exec 2&gt;&amp;1ผมยังจำได้ไม่มีทางที่จะทำกับสิ่งที่ต้องการ ขณะนี้ฉันกำลังใช้สิ่งต่อไปนี้: #!/bin/bash DEBUGLOG=/tmp/debug exec 2&gt;&amp;1 somecommand | tee -a $DEBUGLOG somecommand2 | tee -a $DEBUGLOG somecommand3 | tee -a $DEBUGLOG แต่มันไม่ทำงาน ใครบ้างมีวิธีแก้ไข / สามารถอธิบายสาเหตุได้

6
รันคำสั่งเฉพาะในไดเรกทอรีที่กำหนดโดยไม่ต้อง cd'ing หรือไม่
มีวิธีดำเนินการคำสั่งในไดเรกทอรีอื่นโดยไม่ต้องไปcdหรือไม่ ฉันรู้ว่าฉันสามารถcdเข้าcdออกได้ง่าย ๆ แต่ฉันแค่สนใจในความเป็นไปได้ที่จะเดินตามขั้นตอนพิเศษ :)
42 linux  bash  cd-command 

1
เป็นไปได้หรือไม่ที่จะมีการผูกคีย์กลุ่มในเทอร์มินัล
ฉันคุ้นเคยกับการผูกข้อความ (เช่นกด w เพื่อไปยังคำ, dw เพื่อลบคำและอื่น ๆ ) และมันเป็นโหมด (แทรก, ปกติ, ภาพ) และจากความอยากรู้อยากเห็น: มีบางอย่าง การใช้งานลักษณะการทำงานของโหมดและการเชื่อมโยงจากกลุ่มไปยังเทอร์มินัลของฉันเป็นอย่างไร มีโหมดแทรกโหมดปกติและเช่น ...
42 bash  shell  terminal  vim  zsh 

5
ตัวแปรสภาพแวดล้อมคืออะไร
ฉันรู้ว่าVARIABLE=valueสร้างตัวแปรสภาพแวดล้อมและexport VARIABLE=valueทำให้พร้อมใช้งานสำหรับกระบวนการที่สร้างโดยเชลล์ปัจจุบัน envแสดงตัวแปรสภาพแวดล้อมปัจจุบัน แต่พวกมันอยู่ที่ไหน สิ่งที่ประกอบด้วยตัวแปรสภาพแวดล้อม (หรือสภาพแวดล้อมสำหรับเรื่องนั้น)?

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