คำถามติดแท็ก shell-script

เชลล์สคริปต์เป็นสคริปต์ที่เขียนขึ้นสำหรับเชลล์หรือล่ามบรรทัดคำสั่งของระบบปฏิบัติการ

1
สะท้อนข้อความสีใดสีหนึ่งในเชลล์สคริปต์
ฉันกำลังจะเขียนเชลล์สคริปต์ ฉันต้องการแยกความแตกต่างของข้อความเอาต์พุตเป็นคำเตือนด้วยการตั้งค่าสีเป็นสีเหลือง สิ่งนี้ทำได้อย่างไร

4
ฟังก์ชั่นเชลล์เก็บอยู่ที่ไหนบน Linux?
ในตอนแรกที่ผมกำลังมองหาเหตุผลที่ทำอะไรไม่ถูกขับออกหลังจากที่ให้มันบางโปรแกรมเป็นอาร์กิวเมนต์เช่นwhichcd จากสิ่งที่ฉันได้พบที่นี่เหตุผลที่อาจเป็นว่าในเครื่องของฉันเป็นฟังก์ชั่นซึ่งได้รับการยืนยันจากการทำงานcdtype cd TLDR:แต่ตามปกติแล้วโปรแกรมที่whichสามารถค้นหาด้วย$PATHตัวแปรจะถูกวางไว้ในหนึ่งใน$PATHโฟลเดอร์เหล่านั้นฟังก์ชั่นหรือสคริปต์ที่cdเก็บไว้เป็นอย่างไร user@linuxmchine:~$ type cd cd is a function cd () { __zsh_like_cd cd "$@" }

2
วิธีแก้ไขไฟล์ Excel (xlsx) โดยใช้ linux shell
มีวิธี (เครื่องมือ) ในการแก้ไขไฟล์ XLSX โดยใช้ Linux shell หรือไม่? สิ่งที่ฉันต้องการคือวิธีลบสามแถวสุดท้ายที่ไม่ว่างเปล่าออกจากแผ่นงานแรก ฉันรู้ว่า XLSX เป็นเพียงไฟล์ซิปเต็มไปด้วยไฟล์ XML ที่แตกต่างกันซึ่งฉันสามารถแก้ไขทีละรายการ อย่างไรก็ตามฉันต้องการหลีกเลี่ยงการวิเคราะห์และเปลี่ยนแปลงไฟล์ XML ด้วยตนเองถ้าเป็นไปได้

3
วนรอบช่วงตัวเลขเพื่อดาวน์โหลดด้วย wget
ฉันจะเขียนสคริปต์ทุบตีที่จะทำสิ่งต่อไปนี้ได้อย่างไร: URL = "example.com/imageID=" while (1..100) wget URL + $i #it will wget example.com/imageID=1, then 2, then 3, etc done ดังนั้นฉันจึงมีจำนวนลูปที่ต้องดำเนินการ URL ที่ลงท้ายด้วยตัวเลขจากลูป ฉันต้องการwgetทั้งหมดเหล่านี้

2
ทำไม `route 'แฮงค์สักครู่ก่อนที่ตารางเส้นทางจะถูกทิ้ง?
พิมพ์คำสั่ง: % route Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 192.168.1.0 * 255.255.255.0 U 2 0 0 wlan0 link-local * 255.255.0.0 U 1000 0 0 wlan0 (... hang for a while ...) default 192.168.1.1 0.0.0.0 UG 0 0 0 wlan0 ที่นี่ก่อนที่defaultจะพิมพ์กฎบรรทัดสุดท้ายเราต์จะรอสักครู่ ตารางเส้นทางไม่ได้ถูกแคชไว้ที่ไหนสักแห่งใช่ไหม ฉันเคย grep ผลลัพธ์จากrouteการรับdefaultกฎเพื่อรับเกตเวย์เริ่มต้น …

1
ออกจาก bash script เมื่อ curl ได้รับสถานะที่ไม่ใช่ 200 HTTP
ฉันมีการตั้งค่าสคริปต์ทุบตีเพื่อดำเนินการตามคำขอ curl สองสามข้อ for currency in EUR INR JPY do curl -i --data '{"currency": "'$currency'"}' -H "Accept: application/json" -H "Content-Type: application/json" http://0.0.0.0:8080/price && echo done มีวิธีที่จะทำให้สคริปต์ออกถ้าหนึ่งในการตอบสนองของขดกลับมาด้วยสถานะ http! = 200? ฉันยังต้องการเก็บเอาท์พุท curl มาตรฐานไว้เช่นฉันไม่ต้องการโซลูชันที่พิมพ์รหัสสถานะ http เท่านั้น ไชโย

7
วิธี echo คำสั่งในสคริปต์เปลือก bash แต่ไม่รันพวกเขา?
มีวิธีการรันเชลล์สคริปต์ด้วยการสะท้อนคำสั่งแต่ไม่มีการรันคำสั่งเหล่านั้นหรือไม่? สมมติว่าฉันมีสคริปต์ลบไฟล์ที่มีชื่อถูกเก็บไว้ในตัวแปร: #!/bin/bash set -v FN="filename" rm -f ${FN} การเพิ่มset -vจะสะท้อนคำสั่งต่อไปนี้ก่อนที่จะดำเนินการ: $ ./scr.sh FN="filename" rm -f ${FN} ตอนนี้ฉันต้องการที่จะเห็นการไหลของสคริปต์นี้โดยไม่ต้องลบไฟล์จริง IOW ฉันต้องการป้องกันผลกระทบใด ๆ ต่อสภาพแวดล้อมภายนอกและระบบไฟล์ เป็นไปได้ไหม ฉันสามารถห่อคำสั่งทั้งหมดด้วยechoคำสั่ง แต่มันเหนื่อยสำหรับสคริปต์ยาว

4
ทดสอบว่ามีการติดตั้งแพ็คเกจใน APT หรือไม่
ฉันต้องการวิธีเชลล์สคริปต์เพื่อทดสอบ / รายงานหากมีการติดตั้งแพ็คเกจ ฉันไม่ต้องการรายละเอียดเพียงกลับบูลีนเพื่อตั้งค่าการไหลของตรรกะ ฉันดูที่Find หากมีการติดตั้งแพ็กเกจแต่dpkgส่งคืนเอาต์พุตที่ซับซ้อนและการเปลี่ยนแปลงรูปแบบขึ้นอยู่กับว่าแพคเกจนั้นอยู่ในที่เก็บ Debian หรือใน Ubuntu PPA ฉันพบว่าapt-cacheมันทำได้ค่อนข้างดีและฉันคิดวิธีนี้ขึ้นมา is_installed=0 test_installed=( `apt-cache policy package-name | grep "Installed:" ` ) [ ! "${test_installed[1]}" == "(none)" ] && is_installed=1 ไม่มีใครรู้วิธีที่เรียบง่ายขึ้น

1
การอ่านค่าจากพจนานุกรมที่ซ้อนกัน plist ในเชลล์สคริปต์
ฉันมีไฟล์ plist และฉันสนใจดึงค่าจากพจนานุกรมที่ซ้อนกันโดยใช้เชลล์สคริปต์ นี่คือโครงสร้างของไฟล์ plist ของฉัน: <dict> <key>Countries</key> <dict> <key>USA</key> <dict> <key>Capital</key> <string>Washington DC</string> <key>Continent</key> <string>North America</string> </dict> <key>Italy</key> <dict> <key>Capital</key> <string>Rome</string> <key>Continent</key> <string>Europe</string> </dict> </dict> </dict> ฉันสนใจดึงค่าที่กำหนดให้กับปุ่ม "เมืองหลวง" หากผู้ใช้ระบุชื่อประเทศ เช่นถ้าฉันรันคำสั่งต่อไปนี้ฉันจะได้รับข้อมูลที่สมบูรณ์ภายใต้พจนานุกรม "ประเทศ" defaults read "/Users/sameerp/Downloads/data" Countries 2>&1 ฉันได้รับผลลัพธ์ต่อไปนี้: { Italy = { Capital = Rome; Continent = Europe; }; USA …

2
จะหาซอฟต์ลิงค์ (ลิงก์สัญลักษณ์) ทั้งหมดในไดเรกทอรีปัจจุบันได้อย่างไร?
bashคำถามที่เกี่ยวข้องกับเชลล์สคริปต์ใน วิธีตรวจสอบกับสคริปต์ว่าไฟล์ใดในไดเรกทอรีปัจจุบันคือซอฟต์ลิงค์? ในกรณีที่ฉันได้ใช้คำผิดเมื่อฉันบอกว่าการเชื่อมโยงนุ่ม , ln -sผมหมายถึงไฟล์ที่สร้างขึ้นโดยใช้ สิ่งเดียวที่ฉันคิดได้คือการประเมินls -laว่าเป็นนิพจน์และแยกผลลัพธ์ แต่เห็นได้ชัดว่านี่ไม่ใช่ทางออกที่ดีที่สุด

6
การเริ่มต้นกระบวนการ linux ในพื้นหลัง
ฉันพยายามสร้างสคริปต์ที่เริ่มบางโปรแกรม startup.sh knetworkmanager emesene keepassx ปัญหาคือว่าเมื่อฉันเรียกใช้สคริปต์เพียงเริ่ม knetworkmanager นี่เป็นเพราะมันจะเริ่มแล้วรอจนกว่าจะเสร็จ ฉันจะเริ่มโปรแกรมโดยไม่รอได้อย่างไร ฉันไม่คิดว่าฉันสามารถเพิ่ม "&" หลังแต่ละคำสั่งได้เนื่องจากกระบวนการทั้งหมดจะยังคงถูกฆ่าเมื่อสคริปต์เสร็จสิ้น

3
ฉันจะรันโปรแกรมไพ ธ อนโดยตรงจากเชลล์ได้อย่างไร?
ฉันเขียนสคริปต์ เมื่อมันเริ่มมันจะไม่หยุดและมันจะรับข้อมูลจากอินเทอร์เน็ต ฉันสามารถเรียกมันด้วยวิธีนี้: cd /User/Desktop/project/internetScanner/ python3 main.py start แต่ฉันต้องการเรียกมันโดยตรงจาก terminal เช่นนี้ภายในปลายทาง: internetScanner start ฉันจะทำเช่นนั้นได้อย่างไร

2
ฉันจะปิดหน้าต่างจากแอปพลิเคชันส่งชื่อไฟล์ได้อย่างไร
ฉันกำลังพยายามสร้างคำสั่งเชลล์ที่ใช้ Applescript ซึ่งบอกแอปพลิเคชั่นดูตัวอย่างจาก Mac OS X เพื่อปิดหน้าต่างเฉพาะ #!/bin/sh osascript <<EOF tell application "Preview" close "$1" end tell EOF แต่นี่ไม่ได้ผล: ฉันได้รับข้อความแสดงข้อผิดพลาด 25:52: execution error: Preview got an error: "musixdoc.pdf" doesn’t understand the close message. (-1708) คำถามที่เกี่ยวข้อง: ฉันจะปิดแอปพลิเคชัน OS X จากบรรทัดคำสั่งโดยใช้นามแฝงที่กำหนดใน. bash_profile ของฉันได้อย่างไร


2
เป็นไปได้ไหมที่จะตรวจสอบว่า -e ตั้งค่าไว้ในสคริปต์ทุบตี
หากฟังก์ชั่นเชลล์ต้องการการตั้งค่าเฉพาะของ -e / + e เพื่อให้ทำงานได้เป็นไปได้หรือไม่ที่จะตั้งค่านั้นแบบโลคัลและจากนั้นเรียกคืนเป็นการตั้งค่าก่อนหน้า myfunction() { # Query here if -e is set and remember in a variable? # Or push the settings to then pop at the end of the function? set +e dosomething doanotherthing # Restore -e/+e as appropriate, don't just do unconditional set -e }

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