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

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

7
รับเวลาปัจจุบันเป็นวินาทีตั้งแต่ Epoch บน Linux, Bash
ฉันต้องการสิ่งที่เรียบง่ายเช่นdateแต่ในวินาทีตั้งแต่ปี 1970 แทนที่จะเป็นวันที่ชั่วโมงนาทีและวินาทีปัจจุบัน dateดูเหมือนจะไม่เสนอตัวเลือกนั้น มีวิธีง่ายๆไหม?
633 linux  bash  datetime 

24
วิธีการตรวจสอบเปลือกปัจจุบันฉันกำลังทำงาน
ฉันจะกำหนดเชลล์ปัจจุบันที่ฉันกำลังใช้งานได้อย่างไร ผลลัพธ์ของpsคำสั่งเพียงอย่างเดียวจะเพียงพอหรือไม่ สิ่งนี้สามารถทำได้ใน Unix รสชาติที่แตกต่างกันอย่างไร
633 bash  unix  shell  csh  tcsh 

8
“ cat << EOF” ทำงานอย่างไรในการทุบตี?
ฉันต้องการเขียนสคริปต์เพื่อป้อนอินพุตหลายบรรทัดไปยังโปรแกรม ( psql) หลังจาก googling ไปเล็กน้อยฉันพบว่าไวยากรณ์ต่อไปนี้ใช้งานได้: cat &lt;&lt; EOF | psql ---params BEGIN; `pg_dump ----something` update table .... statement ...; END; EOF นี้ได้อย่างถูกต้องสร้างสตริงหลายคู่สาย (จากBEGIN;การEND;รวม) และท่อมันเป็น input psqlไปยัง แต่ฉันไม่รู้ว่ามันทำงานได้ยังไงบางคนช่วยอธิบายหน่อยได้ไหม? ฉันหมายถึงส่วนใหญ่cat &lt;&lt; EOFฉันรู้ว่าการ&gt;ส่งออกไปยังไฟล์&gt;&gt;ผนวกกับไฟล์&lt;อ่านอินพุตจากไฟล์ ทำอะไร&lt;&lt;กันแน่ และมีหน้าคนสำหรับมันหรือไม่?
629 linux  bash  scripting  heredoc 

24
ตรวจสอบว่าต้องการแรงดึงใน Git หรือไม่
ฉันจะตรวจสอบว่าที่เก็บระยะไกลมีการเปลี่ยนแปลงและฉันต้องดึงได้อย่างไร ตอนนี้ฉันใช้สคริปต์ง่ายๆนี้: git pull --dry-run | grep -q -v 'Already up-to-date.' &amp;&amp; changed=1 แต่มันค่อนข้างหนัก มีวิธีที่ดีกว่า? ทางออกที่ดีที่สุดจะตรวจสอบสาขาระยะไกลทั้งหมดและส่งคืนชื่อของสาขาที่เปลี่ยนแปลงและจำนวนการกระทำใหม่ในแต่ละสาขา
622 git  bash  shell 

14
จะฆ่ากระบวนการทั้งหมดด้วยชื่อบางส่วนที่กำหนดได้อย่างไร [ปิด]
ปิด. คำถามนี้ไม่เป็นไปตามหลักเกณฑ์กองมากเกิน ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้เป็นไปตามหัวข้อสำหรับ Stack Overflow ปิดให้บริการใน4 เดือนที่ผ่านมา ฉันต้องการฆ่ากระบวนการทั้งหมดที่ได้รับโดย: ps aux | grep my_pattern ทำอย่างไร? สิ่งนี้ไม่ทำงาน: pkill my_pattern
622 linux  bash  posix 

23
ฉันจะรู้ชื่อไฟล์สคริปต์ในสคริปต์ Bash ได้อย่างไร
ฉันจะกำหนดชื่อของไฟล์สคริปต์ Bash ภายในสคริปต์ได้อย่างไร เช่นถ้าสคริปต์ของฉันอยู่ในไฟล์runme.shฉันจะทำให้มันแสดงข้อความ "คุณกำลังเรียกใช้ runme.sh" ได้อย่างไรโดยไม่ต้องใช้ hardcoding
605 linux  bash  shell  scripting 

19
เครื่องมือทุบตีเพื่อรับบรรทัดที่ n จากไฟล์
มีวิธี "แบบบัญญัติ" หรือไม่? ฉันใช้head -n | tail -1ซึ่งทำเคล็ดลับ แต่ฉันสงสัยว่ามีเครื่องมือทุบตีที่แยกเส้น (หรือช่วงบรรทัด) จากไฟล์ โดย "canonical" ฉันหมายถึงโปรแกรมที่มีหน้าที่หลักทำเช่นนั้น
604 bash  shell  unix  awk  sed 

30
ฉันจะทดสอบว่าตัวแปรเป็นตัวเลขใน Bash ได้อย่างไร
ฉันไม่สามารถทราบได้ว่าฉันจะแน่ใจได้อย่างไรว่าข้อโต้แย้งที่ส่งผ่านไปยังสคริปต์ของฉันนั้นเป็นตัวเลขหรือไม่ สิ่งที่ฉันอยากทำคือสิ่งนี้: test *isnumber* $1 &amp;&amp; VAR=$1 || echo "need a number" ความช่วยเหลือใด ๆ
599 linux  bash  shell 

14
sudo echo“ something” >> / etc / privilegedFile ไม่ทำงาน
นี่เป็นคำถามที่ค่อนข้างง่ายอย่างน้อยก็น่าจะเป็นไปได้เกี่ยวกับการอนุญาต sudo ใน Linux มีหลายครั้งที่ฉันแค่อยากจะต่อท้าย/etc/hostsไฟล์หรือไฟล์ที่คล้ายกัน แต่ท้ายที่สุดก็ไม่สามารถทำได้เพราะทั้งคู่&gt;และ&gt;&gt;ไม่ได้รับอนุญาตแม้แต่กับรูท มีบางประการเพื่อให้งานนี้ได้โดยไม่ต้องsuหรือsudo suเข้าสู่ราก?

6
การจับเอาท์พุทหลายบรรทัดในตัวแปร Bash
ฉันมีสคริปต์ 'myscript' ที่แสดงผลลัพธ์ต่อไปนี้: abc def ghi ในสคริปต์อื่นฉันเรียก: declare RESULT=$(./myscript) และ$RESULTได้รับความคุ้มค่า abc def ghi มีวิธีในการเก็บผลลัพธ์ด้วยการขึ้นบรรทัดใหม่หรือด้วยอักขระ '\ n' เพื่อให้ฉันสามารถแสดงผลด้วย ' echo -e' ได้หรือไม่
583 bash  variables 

8
วงเล็บสองสี่เหลี่ยม [[]] ดีกว่าวงเล็บเหลี่ยมเดี่ยว [] ใน Bash หรือไม่?
เพื่อนร่วมงานอ้างสิทธิ์เมื่อเร็ว ๆ นี้ในการตรวจสอบโค้ดว่าสิ่ง[[ ]]ก่อสร้างนั้นเป็นที่ต้องการมากกว่า[ ]ในงานสร้างเช่น if [ "`id -nu`" = "$someuser" ] ; then echo "I love you madly, $someuser" fi เขาไม่สามารถให้เหตุผลได้ มีไหม

8
วิธีการดำเนินการ OR แบบลอจิคัลในเชลล์สคริปต์
ฉันพยายามตรวจสอบสภาพง่าย ๆ แต่ดูเหมือนจะไม่ทำงาน ถ้า$#เท่ากับ0หรือมากกว่า1นั้นจงทักทาย ฉันได้ลองใช้ไวยากรณ์ต่อไปนี้โดยไม่ประสบความสำเร็จ: if [ "$#" == 0 -o "$#" &gt; 1 ] ; then echo "hello" fi if [ "$#" == 0 ] || [ "$#" &gt; 1 ] ; then echo "hello" fi
571 bash  unix  if-statement  sh 

10
วิธีการตั้งค่าไดเรกทอรีการทำงานปัจจุบันไปยังไดเรกทอรีของสคริปต์หรือไม่
ฉันกำลังเขียนสคริปต์ทุบตี ฉันต้องการไดเรกทอรีการทำงานปัจจุบันเป็นไดเรกทอรีที่สคริปต์ตั้งอยู่เสมอ พฤติกรรมเริ่มต้นคือไดเรกทอรีการทำงานปัจจุบันในสคริปต์เป็นของเชลล์ที่ฉันเรียกใช้ แต่ฉันไม่ต้องการพฤติกรรมนี้
569 bash  path  scripting 


11
ฉันจะเพิ่มตัวเลขในสคริปต์ Bash ได้อย่างไร
ฉันมีสคริปต์ Bash นี้และฉันมีปัญหาในบรรทัดที่ 16 ฉันจะนำผลลัพธ์ก่อนหน้าของบรรทัดที่ 15 และเพิ่มไปยังตัวแปรในบรรทัดที่ 16 ได้อย่างไร #!/bin/bash num=0 metab=0 for ((i=1; i&lt;=2; i++)); do for j in `ls output-$i-*`; do echo "$j" metab=$(cat $j|grep EndBuffer|awk '{sum+=$2} END { print sum/120}') (line15) num= $num + $metab (line16) done echo "$num" done

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