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

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

3
นับจำนวนบรรทัดในเอาต์พุตเทอร์มินัล
ไม่พบสิ่งนี้ใน SO ฉันรันคำสั่งต่อไปนี้ในเทอร์มินัล: >> grep -Rl "curl" ./ และสิ่งนี้จะแสดงรายการของไฟล์ที่มีคำสำคัญเกิดขึ้น ฉันต้องการนับจำนวนไฟล์ วิธีแรกที่ฉันคิดได้คือการนับจำนวนบรรทัดในเอาต์พุตที่มาในเทอร์มินัล ฉันจะทำสิ่งนั้นได้อย่างไร
264 bash  terminal 


4
ทุบตีสามารถแสดงความหมายของฟังก์ชั่น?
มีวิธีดูนิยามฟังก์ชั่นทุบตีในทุบตี? ตัวอย่างเช่นสมมติว่าฉันกำหนดฟังก์ชัน foobar function foobar { echo "I'm foobar" } มีวิธีใดบ้างที่จะได้รับรหัสในภายหลังfoobarหรือไม่ $ # non-working pseudocode $ echo $foobar echo "I'm foobar"
262 bash  function 

11
ฉันจะรันเชลล์สคริปต์ได้อย่างไรโดยไม่ใช้คำสั่ง“ sh” หรือ“ bash”
ฉันมีเชลล์สคริปต์ที่ฉันต้องการเรียกใช้โดยไม่ใช้คำสั่ง "sh" หรือ "bash" ตัวอย่างเช่น: แทน: sh script.sh ฉันต้องการใช้: script.sh ฉันจะทำสิ่งนี้ได้อย่างไร PS (i) ฉันไม่ได้ใช้เชลล์สคริปต์มากนักและฉันพยายามอ่านเกี่ยวกับชื่อแทน แต่ฉันไม่เข้าใจวิธีใช้พวกเขา (ii) ฉันยังอ่านเกี่ยวกับการเชื่อมโยงสคริปต์กับไฟล์อื่นในตัวแปร PATH ฉันใช้เซิร์ฟเวอร์มหาวิทยาลัยของฉันและฉันไม่มีสิทธิ์ในการสร้างไฟล์ในสถานที่เหล่านั้น
261 bash  shell  alias  sh 

23
แปลงพา ธ สัมบูรณ์เป็นพา ธ สัมพัทธ์ที่กำหนดไดเรกทอรีปัจจุบันโดยใช้ Bash
ตัวอย่าง: absolute="/foo/bar" current="/foo/baz/foo" # Magic relative="../../bar" ฉันจะสร้างเวทย์มนตร์ได้อย่างไร (หวังว่ารหัสไม่ซับซ้อนเกินไป ... )

14
การตรวจสอบสถานะ Bash exit ของหลายคำสั่งอย่างมีประสิทธิภาพ
มีบางสิ่งที่คล้ายกับ pipefail สำหรับหลายคำสั่งเช่นคำสั่ง 'ลอง' แต่อยู่ภายในทุบตี ฉันต้องการทำสิ่งนี้: echo "trying stuff" try { command1 command2 command3 } และ ณ จุดใด ๆ หากคำสั่งใดล้มเหลวให้เลื่อนออกและสะท้อนข้อผิดพลาดของคำสั่งนั้น ฉันไม่ต้องการที่จะทำสิ่งที่ชอบ: command1 if [ $? -ne 0 ]; then echo "command1 borked it" fi command2 if [ $? -ne 0 ]; then echo "command2 borked it" fi และอื่น ๆ ... …
260 bash  exit 


6
อะไรคือข้อแตกต่างระหว่าง $ (command) และ `command` ในการเขียนโปรแกรมเชลล์?
ในการจัดเก็บเอาต์พุตของคำสั่งเป็นตัวแปรใน sh / ksh / bash คุณสามารถทำได้ var=$(command) หรือ var=`command` ความแตกต่างระหว่างสองวิธีคืออะไร?
258 bash  shell  ksh  sh 

5
ตัวดำเนินการเชิงตรรกะอย่างง่ายใน Bash
ฉันมีตัวแปรสองสามตัวและฉันต้องการตรวจสอบเงื่อนไขต่อไปนี้ (เขียนออกมาเป็นคำพูดจากนั้นฉันก็พยายามล้มเหลวในการทำสคริปต์ทุบตี): if varA EQUALS 1 AND ( varB EQUALS "t1" OR varB EQUALS "t2" ) then do something done. และในความพยายามที่ล้มเหลวของฉันฉันมาด้วย: if (($varA == 1)) && ( (($varB == "t1")) || (($varC == "t2")) ); then scale=0.05 fi

5
วิธีตรวจสอบสถานะการออกโดยใช้คำสั่ง if
ฉันสงสัยว่าสิ่งใดจะเป็นวิธีที่ดีที่สุดในการตรวจสอบสถานะการออกในคำสั่ง if เพื่อสะท้อนผลลัพธ์เฉพาะ ฉันคิดว่ามันเป็น if [ $? -eq 1 ] then echo "blah blah blah" fi ปัญหาที่ฉันยังมีคือคำสั่ง exit อยู่ก่อนคำสั่ง if เพียงเพราะต้องมีรหัสการออกนั้น นอกจากนี้ฉันรู้ว่าฉันกำลังทำอะไรผิดพลาดเพราะทางออกจะเห็นได้ชัดว่าออกจากโปรแกรม

6
ฉันจะค้นหา symlink ทั้งหมดในแผนผังทรีได้อย่างไร
ฉันพยายามค้นหา symlink ทั้งหมดภายในแผนผังไดเรกทอรีสำหรับเว็บไซต์ของฉัน ฉันรู้ว่าฉันสามารถใช้findทำสิ่งนี้ แต่ฉันไม่สามารถหาวิธีตรวจสอบไดเรกทอรีซ้ำ ๆ ฉันได้ลองคำสั่งนี้แล้ว: find /var/www/ -type l …และต่อมาฉันค้นพบว่าเนื้อหาใน/var/wwwนั้นเป็น symlink ดังนั้นฉันจึงเปลี่ยนคำสั่งเป็น: find -L /var/www/ -type l ต้องใช้เวลาสักพัก แต่ฉันก็ไม่ทัน ฉันจะรับสิ่งนี้เพื่อตรวจสอบไดเรกทอรีย่อยได้อย่างไร
255 bash  find  symlink 

9
จะใช้ 'ค้นหา' เพื่อค้นหาไฟล์ที่สร้างในวันที่ระบุได้อย่างไร [ปิด]
ปิด. คำถามนี้ไม่เป็นไปตามหลักเกณฑ์กองมากเกิน ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้เป็นไปตามหัวข้อสำหรับ Stack Overflow ปิดให้บริการใน6 ปีที่ผ่านมา ปรับปรุงคำถามนี้ ฉันจะใช้คำสั่ง UNIX findเพื่อค้นหาไฟล์ที่สร้างในวันที่ระบุได้อย่างไร
254 bash  unix  find 

4
ฉันสามารถเปลี่ยนชื่อของ "nohup.out" ได้หรือไม่?
เมื่อฉันรันnohup some_command &เอาต์พุตจะไปที่nohup.out; man nohupพูดว่าให้ดูที่info nohupในทางกลับกันพูดว่า: หากเอาต์พุตมาตรฐานเป็นเทอร์มินัลเอาต์พุตมาตรฐานของคำสั่งจะถูกผนวกเข้ากับไฟล์ 'nohup.out' หากสิ่งนั้นไม่สามารถเขียนได้มันจะถูกผนวกเข้ากับไฟล์ '$ HOME / nohup.out'; และหากไม่สามารถเขียนได้คำสั่งจะไม่ทำงาน แต่ถ้าฉันมีหนึ่งคำสั่งที่ใช้nohupกับการส่งออกไป/nohup.outและฉันต้องการเรียกใช้อีกnohupคำสั่งฉันจะเปลี่ยนเส้นทางการส่งออกไปnohup2.out?
254 bash  logging  nohup 

13
วิธีการจำลองสภาพแวดล้อม cron รันสคริปต์ด้วย?
ปกติฉันมีปัญหาหลายอย่างเกี่ยวกับวิธีที่ cron เรียกใช้งานสคริปต์เนื่องจากปกติไม่มีการตั้งค่าสภาพแวดล้อมของฉัน มีวิธีในการเรียกใช้ bash (?) ในลักษณะเดียวกับ cron หรือไม่ดังนั้นฉันจึงสามารถทดสอบสคริปต์ก่อนติดตั้งได้หรือไม่
253 bash  scripting  cron 

6
วิธีการตรวจสอบว่าสคริปต์เปลือกของฉันทำงานผ่านท่อ
ฉันจะตรวจจับจากภายในสคริปต์เชลล์ได้อย่างไรหากเอาต์พุตมาตรฐานกำลังถูกส่งไปยังเทอร์มินัลหรือถ้ามันถูกส่งไปยังกระบวนการอื่น กรณีตรงประเด็น: ฉันต้องการเพิ่มรหัสหลีกเลี่ยงเพื่อกำหนดสีเอาท์พุท แต่เฉพาะเมื่อทำงานแบบโต้ตอบ แต่ไม่ใช่เมื่อมีการไพพ์คล้ายกับสิ่งที่ls --colorทำ
253 bash  shell  pipe 

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