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

สำหรับคำถามเกี่ยวกับสคริปต์ที่เขียนขึ้นสำหรับเชลล์คำสั่ง Bash สำหรับเชลล์สคริปต์ที่มีข้อผิดพลาด / ข้อผิดพลาดทางไวยากรณ์โปรดตรวจสอบด้วยโปรแกรม shellcheck (หรือในเซิร์ฟเวอร์ shellcheck เว็บที่ https://shellcheck.net) ก่อนโพสต์ที่นี่ คำถามเกี่ยวกับการใช้งานอินเทอร์แอคทีฟของ Bash นั้นมีแนวโน้มที่จะอยู่ในหัวข้อของผู้ใช้ขั้นสูงมากกว่าในสแต็คโอเวอร์โฟลว์

30
จะตรวจสอบว่าตัวแปรถูกตั้งค่าใน Bash ได้อย่างไร?
ฉันจะทราบได้อย่างไรว่าตัวแปรถูกตั้งค่าใน Bash หรือไม่ ตัวอย่างเช่นฉันจะตรวจสอบได้อย่างไรว่าผู้ใช้กำหนดพารามิเตอร์แรกให้กับฟังก์ชันหรือไม่ function a { # if $1 is set ? }
1567 bash  shell  variables 

20
ฉันจะวนซ้ำช่วงของตัวเลขที่กำหนดโดยตัวแปรใน Bash ได้อย่างไร
ฉันจะวนซ้ำในช่วงของตัวเลขใน Bash ได้อย่างไรเมื่อช่วงถูกกำหนดโดยตัวแปร ฉันรู้ว่าฉันสามารถทำได้ (เรียกว่า "ลำดับนิพจน์" ในเอกสาร Bash ): for i in {1..5}; do echo $i; done ซึ่งจะช่วยให้: 1 2 3 4 5 แต่ฉันจะแทนที่จุดปลายของช่วงใดช่วงหนึ่งด้วยตัวแปรได้อย่างไร สิ่งนี้ใช้ไม่ได้: END=5 for i in {1..$END}; do echo $i; done สิ่งที่พิมพ์: {} 1..5
1543 bash  shell  for-loop  syntax 

7
วิธีการเปลี่ยนเส้นทางและผนวกทั้ง stdout และ stderr ไปยังไฟล์ด้วย Bash?
เพื่อเปลี่ยนเส้นทางstdoutไปยังไฟล์ที่ถูกตัดทอนใน Bash ฉันรู้ว่าจะใช้: cmd > file.txt หากต้องการเปลี่ยนเส้นทางstdoutใน Bash ต่อท้ายไฟล์ฉันรู้ที่จะใช้: cmd >> file.txt เพื่อเปลี่ยนเส้นทางทั้งstdoutและstderrไปยังไฟล์ที่ถูกตัดทอนฉันรู้ว่าจะใช้: cmd &> file.txt ฉันจะเปลี่ยนเส้นทางทั้งstdoutและstderrต่อท้ายไฟล์ได้อย่างไร cmd &>> file.txtไม่ได้ผลสำหรับฉัน
1533 linux  bash  redirect  stream  pipe 

19
วนซ้ำสตริงใน Bash หรือไม่
ฉันต้องการเขียนสคริปต์ที่วนรอบ 15 สาย (อาจเป็นไปได้หรือไม่) เป็นไปได้ไหม สิ่งที่ต้องการ: for databaseName in listOfNames then # Do something end
1501 arrays  bash  shell 

30
ฉันจะพร้อมต์สำหรับอินพุตใช่ / ไม่ใช่ / ยกเลิกในสคริปต์เชลล์ Linux ได้อย่างไร
ฉันต้องการหยุดการป้อนข้อมูลในเชลล์สคริปต์และแจ้งให้ผู้ใช้เลือกได้ มาตรฐานYes, NoหรือCancelคำถามประเภท ฉันจะทำสิ่งนี้ให้สำเร็จได้ในพรอมต์ทุบตีทั่วไป
1443 linux  bash  shell  scripting 

12
วนเนื้อหาของไฟล์ใน Bash
ฉันจะวนซ้ำแต่ละบรรทัดของไฟล์ข้อความด้วยBash ได้อย่างไร ด้วยสคริปต์นี้: echo "Start!" for p in (peptides.txt) do echo "${p}" done ฉันได้รับผลลัพธ์นี้บนหน้าจอ: Start! ./runPep.sh: line 3: syntax error near unexpected token `(' ./runPep.sh: line 3: `for p in (peptides.txt)' (ต่อมาฉันต้องการทำสิ่งที่ซับซ้อน$pมากกว่าเพียงแค่เอาท์พุทไปยังหน้าจอ) ตัวแปรสภาพแวดล้อมSHELLคือ (จาก env): SHELL=/bin/bash /bin/bash --version เอาท์พุท: GNU bash, version 3.1.17(1)-release (x86_64-suse-linux-gnu) Copyright (C) 2005 Free Software Foundation, …
1387 linux  bash  loops  unix  io 

10
ตรวจสอบการมีอยู่ของอาร์กิวเมนต์อินพุตในสคริปต์เชลล์ Bash
ฉันต้องการตรวจสอบการมีอยู่ของอาร์กิวเมนต์อินพุต ฉันมีสคริปต์ต่อไปนี้ if [ "$1" -gt "-1" ] then echo hi fi ฉันเข้าใจ [: : integer expression expected ฉันจะตรวจสอบอินพุตอาร์กิวเมนต์ 1 ก่อนเพื่อดูว่ามีอยู่ได้อย่างไร?
1336 bash  shell 

12
ความแตกต่างระหว่าง sh และ bash
เมื่อมีการเขียนโปรแกรมเปลือกเรามักจะใช้และ/bin/sh /bin/bashฉันมักจะใช้bashแต่ฉันไม่รู้ว่าอะไรคือความแตกต่างระหว่างพวกเขา ความแตกต่างหลักระหว่างbashและshคืออะไร เราทำอะไรจะต้องตระหนักว่าเมื่อการเขียนโปรแกรมในbashและsh?
1303 bash  shell  unix  sh 

19
สร้าง Bash alias ที่รับพารามิเตอร์หรือไม่
ฉันเคยใช้ CShell (csh) ซึ่งช่วยให้คุณสร้างนามแฝงที่ใช้พารามิเตอร์ สัญกรณ์เป็นสิ่งที่ชอบ alias junk="mv \\!* ~/.Trash" ใน Bash สิ่งนี้ดูเหมือนจะไม่ทำงาน เนื่องจาก Bash มีคุณสมบัติที่มีประโยชน์มากมายฉันจะสมมติว่ามีการใช้งานคุณลักษณะนี้แล้ว แต่ฉันสงสัยว่าอย่างไร
1270 bash  alias 


5
Bash shebang ที่ต้องการคืออะไร
ถ้าเป็นเช่นนี้แล้วStack Overflow คุณจะได้รับคำตอบที่ถูกต้อง : Вчёмсмыслипреимущества #! / usr / bin / env? มีBashshebang ใดที่มีความหมายดีกว่าคนอื่น ๆ สำหรับการใช้งานส่วนใหญ่หรือไม่? #!/usr/bin/env bash #!/bin/bash #!/bin/sh #!/bin/sh - ฯลฯ ฉันจำได้ไม่นานเมื่อได้ยินว่าการเพิ่มเครื่องหมายขีดคั่นไปยังจุดสิ้นสุดทำให้บางคนส่งคำสั่งไปที่สคริปต์ของคุณ แต่ไม่พบรายละเอียดใด ๆ
1131 bash  shebang 

14
echo ที่ส่งออกไปยัง stderr
มีเครื่องมือทุบตีมาตรฐานที่ทำหน้าที่เหมือนเสียงสะท้อน แต่ส่งออกไปยัง stderr แทนที่จะเป็น stdout หรือไม่? ฉันรู้ว่าฉันสามารถทำได้echo foo 1>&2แต่มันก็น่าเกลียดและฉันสงสัยว่ามีแนวโน้มผิดพลาด (เช่นมีแนวโน้มที่จะได้รับการแก้ไขผิดเมื่อสิ่งต่าง ๆ เปลี่ยนแปลง)
1115 bash 


29
จะระบุคีย์ SSH ส่วนตัวที่จะใช้เมื่อเรียกใช้คำสั่งเชลล์บน Git ได้อย่างไร
อาจเป็นสถานการณ์ที่ผิดปกติ แต่ฉันต้องการระบุคีย์ SSH ส่วนตัวที่จะใช้เมื่อเรียกใช้คำสั่ง shell (git) จากคอมพิวเตอร์ในระบบ โดยทั่วไปเช่นนี้ git clone git@github.com:TheUser/TheProject.git -key "/home/christoffer/ssh_keys/theuser" หรือดียิ่งขึ้น (ใน Ruby): with_key("/home/christoffer/ssh_keys/theuser") do sh("git clone git@github.com:TheUser/TheProject.git") end ฉันได้เห็นตัวอย่างของการเชื่อมต่อกับเซิร์ฟเวอร์ระยะไกลด้วย Net :: SSH ที่ใช้ไพรเวตคีย์ที่ระบุ แต่นี่เป็นคำสั่งโลคอล เป็นไปได้ไหม?
1108 git  bash  shell  ssh 

23
วิธีการนับบรรทัดในเอกสาร?
ฉันมีเส้นแบบนี้และฉันอยากรู้ว่าฉันมีหลายเส้นจริง ๆ ... 09:16:39 AM all 2.00 0.00 4.00 0.00 0.00 0.00 0.00 0.00 94.00 09:16:40 AM all 5.00 0.00 0.00 4.00 0.00 0.00 0.00 0.00 91.00 09:16:41 AM all 0.00 0.00 4.00 0.00 0.00 0.00 0.00 0.00 96.00 09:16:42 AM all 3.00 0.00 1.00 0.00 0.00 0.00 0.00 0.00 …

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