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

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

5
รับจำนวนค่าที่ไม่ซ้ำกันในคอลัมน์ใน bash
ฉันมีไฟล์ที่คั่นด้วยแท็บที่มีหลายคอลัมน์ ฉันต้องการนับความถี่ของการเกิดค่าต่างๆในคอลัมน์สำหรับไฟล์ทั้งหมดในโฟลเดอร์และจัดเรียงตามลำดับการนับที่ลดลง (จำนวนสูงสุดก่อน) ฉันจะทำสิ่งนี้ให้สำเร็จในสภาพแวดล้อมบรรทัดคำสั่งของ Linux ได้อย่างไร สามารถใช้ภาษาบรรทัดคำสั่งทั่วไปเช่น awk, perl, python เป็นต้น

6
วิธีใช้ GNU sed บน Mac OS 10.10+ ไม่รองรับ 'brew install --default-names' อีกต่อไป
ภายใต้ Mac OS 10.10.3 ฉันติดตั้ง gnu-sed โดยพิมพ์: brew install gnu-sed --default-names เมื่อฉันพิมพ์อีกครั้งฉันจะได้รับข้อความ: gnu-sed-4.2.2 ติดตั้งแล้ว อย่างไรก็ตามแม้ว่าจะรีบูตระบบและรีสตาร์ท Terminal ฉันก็ยังไม่สามารถใช้ sed เวอร์ชัน GNU ได้ ตัวอย่างเช่น: echo a | sed ’s_A_X_i’ ผลตอบแทน: แฟล็กที่ไม่ถูกต้องในคำสั่งการแทนที่ 'i' ฉันควรทำอย่างไรเพื่อให้เวอร์ชัน GNU ทำงานได้ นี่คือเส้นทางในตัวแปร $ PATH ของฉัน /Users/WN/-myUnix /opt/local/bin /opt/local/sbin /usr/bin /bin /usr/sbin /sbin /usr/local/bin /Applications/calibre.app/Contents/MacOS /opt/ImageMagick/bin /usr/texbin ฉันขอโทษหากคำถามของฉันดูเหมือนชัดเจน แต่ฉันกำลังเรียนรู้เชลล์สคริปต์ด้วยตัวเองและยังไม่ค่อยเข้าใจวิธีการติดตั้งโปรแกรม …
98 macos  bash  sed  homebrew  gnu 

5
วิธีการแยกข้อความจากสตริงโดยใช้ sed?
สตริงตัวอย่างของฉันมีดังนี้: This is 02G05 a test string 20-Jul-2012 02G05ตอนนี้จากสตริงดังกล่าวข้างต้นที่ฉันต้องการที่จะดึง สำหรับสิ่งนั้นฉันลอง regex ต่อไปนี้ด้วย sed $ echo "This is 02G05 a test string 20-Jul-2012" | sed -n '/\d+G\d+/p' แต่คำสั่งด้านบนไม่พิมพ์อะไรเลยและเหตุผลที่ฉันเชื่อคือมันไม่สามารถจับคู่อะไรกับรูปแบบที่ฉันให้มาได้ คำถามของฉันคือฉันทำอะไรผิดที่นี่และจะแก้ไขอย่างไร เมื่อฉันลองใช้สตริงและรูปแบบด้านบนด้วย python ฉันได้ผลลัพธ์ >>> re.findall(r'\d+G\d+',st) ['02G05'] >>>
98 regex  bash  sed 

6
เชลล์ - เขียนเนื้อหาตัวแปรลงในไฟล์
ฉันต้องการคัดลอกเนื้อหาของตัวแปร (ในที่นี้เรียกว่าvar) ลงในไฟล์ destfileชื่อของไฟล์จะถูกเก็บไว้ในตัวแปรอื่น ฉันมีปัญหาในการดำเนินการนี้ นี่คือสิ่งที่ฉันได้ลอง: cp $var $destfile ฉันได้ลองสิ่งเดียวกันกับคำสั่ง dd ด้วย ... เห็นได้ชัดว่าเชลล์คิดว่า$varอ้างถึงไดเร็กทอรีจึงบอกฉันว่าไม่พบไดเร็กทอรี ฉันจะหลีกเลี่ยงสิ่งนี้ได้อย่างไร?
98 linux  bash  shell 

3
การเรียกดูโฟลเดอร์ใน MSYS
นี่จะเป็นคำถามที่ยากที่สุดของวัน ฉันจะสำรวจโครงสร้างโฟลเดอร์ Windows ของฉันภายในเชลล์ MSYS ได้อย่างไร เมื่อฉันเริ่มต้นเปลือกสิ่งที่ฉันเห็นคือ '~' ฉันพิมพ์ 'ls' และโฟลเดอร์ว่างเปล่า ฉันแค่อยากรู้วิธีไปที่ไดรฟ์ c ของฉัน
98 bash  msys 

2
วิธีเรียกใช้ Gradle จากบรรทัดคำสั่งบน Mac bash
ฉันมีคำถามง่ายๆ ฉันยังใหม่กับ Mac และฉันกำลังพยายามย้ายโปรเจ็กต์ Java ของฉันไปยัง Mac เครื่องใหม่ โครงการมีไฟล์ Gradlew ที่ฉันคิดว่าฉันสามารถเรียกใช้จากบรรทัดคำสั่งเพื่อสร้างและเรียกใช้บนเครื่องใดก็ได้ เมื่อฉันทำการ gradlew จากบรรทัดคำสั่ง (ในตำแหน่งของไฟล์ gradlew) มันแจ้งว่าไม่พบ gradlew ฉันพลาดบางอย่างเกี่ยวกับวิธีเรียกใช้คำสั่งจาก bash shell หรือไม่?
98 java  macos  bash  gradle 

16
Linux: คำนวณแฮชเดียวสำหรับโฟลเดอร์และเนื้อหาที่กำหนด?
ต้องมีวิธีทำง่ายๆแน่นอน! ฉันได้ลองใช้แอปบรรทัดคำสั่งของ Linux sha1sumแล้วmd5sumแต่ดูเหมือนว่าจะสามารถคำนวณแฮชของไฟล์แต่ละไฟล์และแสดงรายการค่าแฮชได้หนึ่งรายการสำหรับแต่ละไฟล์ ฉันต้องการสร้างแฮชเดียวสำหรับเนื้อหาทั้งหมดของโฟลเดอร์ (ไม่ใช่แค่ชื่อไฟล์) ฉันต้องการทำสิ่งที่ชอบ sha1sum /folder/of/stuff > singlehashvalue แก้ไข:เพื่อชี้แจงไฟล์ของฉันอยู่ในหลายระดับในแผนผังไดเรกทอรีไม่ใช่ทั้งหมดที่อยู่ในโฟลเดอร์รูทเดียวกัน
98 linux  bash  hash 

6
วิธีที่ง่ายที่สุดในการลบเครื่องหมายทับจากแต่ละพารามิเตอร์คืออะไร
วิธีที่ง่ายที่สุดในการลบเครื่องหมายทับจากแต่ละพารามิเตอร์ในอาร์เรย์ '$ @' เพื่อrsyncคัดลอกไดเรกทอรีตามชื่อคืออะไร rsync -a --exclude='*~' "$@" "$dir" มีการเปลี่ยนชื่อเรื่องเพื่อความกระจ่าง หากต้องการทำความเข้าใจความคิดเห็นและคำตอบเกี่ยวกับเครื่องหมายทับหลายตัวให้ดูประวัติการแก้ไข

11
สคริปต์เดียวที่จะทำงานทั้งใน Windows batch และ Linux Bash?
เป็นไปได้ไหมที่จะเขียนไฟล์สคริปต์เดียวซึ่งดำเนินการทั้งใน Windows (ถือว่าเป็น. bat) และ Linux (ผ่าน Bash) ฉันรู้ไวยากรณ์พื้นฐานของทั้งสอง แต่ไม่เข้าใจ อาจใช้ประโยชน์จากไวยากรณ์ที่คลุมเครือของ Bash หรือความผิดพลาดของตัวประมวลผลแบตช์ของ Windows คำสั่งในการดำเนินการอาจเป็นเพียงบรรทัดเดียวเพื่อเรียกใช้สคริปต์อื่น แรงจูงใจคือการมีคำสั่งบูตแอปพลิเคชันเดียวสำหรับทั้ง Windows และ Linux อัปเดต:ความต้องการเชลล์สคริปต์ "เนทีฟ" ของระบบคือต้องเลือกเวอร์ชันล่ามที่เหมาะสมสอดคล้องกับตัวแปรสภาพแวดล้อมที่รู้จักกันดีบางอย่างเป็นต้นการติดตั้งสภาพแวดล้อมเพิ่มเติมเช่น CygWin ไม่เป็นที่นิยม - ฉันต้องการคงแนวคิด " ดาวน์โหลดและเรียกใช้ " ภาษาอื่นที่ควรพิจารณาสำหรับ Windows คือ Windows Scripting Host - WSH ซึ่งตั้งค่าไว้ล่วงหน้าตั้งแต่ปี 98
98 bash  batch-file 

3
จะเปลี่ยนอาร์กิวเมนต์บรรทัดคำสั่งใน Bash ได้อย่างไร?
มีวิธีเปลี่ยนอาร์กิวเมนต์บรรทัดคำสั่งในสคริปต์ Bash หรือไม่? ตัวอย่างเช่นสคริปต์ Bash ถูกเรียกเช่นนี้: ./foo arg1 arg2 มีวิธีเปลี่ยนค่าของ arg1 ภายในสคริปต์หรือไม่? สิ่งที่ต้องการ: $1="chintz"

11
ไม่พบคำสั่ง Gulp หลังจากติดตั้ง
ฉันติดตั้งอึก (ทั่วโลก) และดูเหมือนว่าจะใช้งานได้เพราะมันรันโค้ดนี้: ├── tildify@0.2.0 ├── interpret@0.3.5 ├── pretty-hrtime@0.2.1 ├── deprecated@0.0.1 ├── archy@0.0.2 ├── minimist@0.2.0 ├── semver@2.3.2 ├── orchestrator@0.3.7 (stream-consume@0.1.0, sequencify@0.0.7, end-of-stream@0.1.5) ├── chalk@0.5.1 (escape-string-regexp@1.0.1, ansi-styles@1.1.0, supports-color@0.2.0, strip-ansi@0.3.0, has-ansi@0.1.0) ├── gulp-util@2.2.20 (lodash._reinterpolate@2.4.1, dateformat@1.0.8-1.2.3, vinyl@0.2.3, through2@0.5.1, multipipe@0.1.1, lodash.template@2.4.1) ├── liftoff@0.12.0 (extend@1.2.1, minimist@0.1.0, resolve@0.7.4, findup-sync@0.1.3) └── vinyl-fs@0.3.5 (graceful-fs@3.0.2, lodash@2.4.1, mkdirp@0.5.0, strip-bom@0.3.1, vinyl@0.2.3, …
97 macos  bash  terminal  npm  gulp 

2
ไปข้างหน้าการประกาศฟังก์ชันใน Bash หรือเชลล์สคริปต์?
มีสิ่งนั้นในbashหรืออย่างน้อยก็มีบางอย่างที่คล้ายกัน (วิธีแก้ปัญหา) เช่นการประกาศล่วงหน้าที่รู้จักกันดีใน C / C ++ หรือไม่? หรือมีสิ่งนั้นเพราะตัวอย่างเช่นมันถูกดำเนินการในครั้งเดียวเสมอ (บรรทัดหลังบรรทัด)? หากไม่มีการประกาศล่วงหน้าฉันควรทำอย่างไรเพื่อให้สคริปต์อ่านง่ายขึ้น ค่อนข้างยาวและคำจำกัดความของฟังก์ชันเหล่านี้ในตอนต้นผสมกับตัวแปรส่วนกลางทำให้สคริปต์ของฉันดูน่าเกลียดและอ่าน / เข้าใจยาก)? ฉันขอให้เรียนรู้แนวทางปฏิบัติที่เป็นที่รู้จัก / ดีที่สุดสำหรับกรณีดังกล่าว ตัวอย่างเช่น: # something like forward declaration function func # execution of the function func # definition of func function func { echo 123 }

5
แบทช์ที่เทียบเท่ากับแบ็คไทม์ Bash
เมื่อทำงานกับ Bash ฉันสามารถใส่ผลลัพธ์ของคำสั่งหนึ่งในคำสั่งอื่นได้ดังนี้: my_command `echo Test` ก็จะเหมือนกับ my_command Test (เห็นได้ชัดว่านี่เป็นเพียงตัวอย่างที่ไม่สามารถใช้ได้จริง) ฉันแค่สงสัยว่าคุณสามารถทำสิ่งเดียวกันใน Batch ได้หรือไม่

11
Python vs Bash - งานประเภทใดที่แต่ละงานมีประสิทธิภาพเหนือกว่าประสิทธิภาพอื่น ๆ ? [ปิด]
ปิด . คำถามนี้เป็นคำถามความคิดเห็นตาม ขณะนี้ยังไม่ยอมรับคำตอบ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้สามารถตอบได้ด้วยข้อเท็จจริงและการอ้างอิงโดยแก้ไขโพสต์นี้ ปิดให้บริการใน3 เดือนที่ผ่านมา ปรับปรุงคำถามนี้ เห็นได้ชัดว่า Python เป็นมิตรกับผู้ใช้มากกว่าการค้นหาอย่างรวดเร็วใน Google จะแสดงผลลัพธ์มากมายที่กล่าวว่าเนื่องจาก Python มีการคอมไพล์ไบต์มักจะเร็วกว่า ฉันพบสิ่งนี้ที่อ้างว่าคุณสามารถเห็นการปรับปรุงมากกว่า 2000% ในการดำเนินการตามพจนานุกรม คุณมีประสบการณ์อย่างไรในเรื่องนี้? แต่ละคนเป็นผู้ชนะที่ชัดเจนในงานประเภทใด

5
HMAC-SHA1 ใน bash
มีสคริปต์ทุบตีเพื่อสร้างHMAC-SHA1แฮชหรือไม่? ฉันกำลังมองหาสิ่งที่เทียบเท่ากับโค้ด PHP ต่อไปนี้: hash_hmac("sha1", "value", "key");
97 bash  sha1  hmac 

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