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

สคริปต์คือชุดคำสั่งที่เขียนในไฟล์ "ข้อความธรรมดา" ตัวแปลสคริปต์ (ตัวอย่างเช่น Bash หรือ shell อื่น, Python, Perl, Ruby, ฯลฯ ) อ่านไฟล์และดำเนินการตามคำแนะนำราวกับว่าพวกมันถูกป้อนที่ command prompt

4
สร้างไฟล์ .desktop ที่เปิดและดำเนินการคำสั่งในเทอร์มินัล
ฉันต้องการทราบวิธีการเขียนExecคำสั่งของไฟล์ .desktop เพื่อเปิดเทอร์มินัลใหม่และเรียกใช้งานเชลล์สคริปต์ในนั้น เชลล์สคริปต์ทำงานและเข้าถึงได้โดยผู้ใช้ทั้งหมด เมื่อเปิดใช้งานสคริปต์จากเทอร์มินัลทุกอย่างทำงานได้ แต่จะไม่เมื่อพยายามเปิดใช้งานสคริปต์จากไฟล์ .desktop นี่คือชุดค่าผสมบางส่วนที่ฉันได้ลองไปแล้ว: Exec=gnome-terminal -x sh -c 'echo hello' Exec=sh -c 'gnome-terminal echo hello' Exec=sh -c 'echo hello' Exec=echo hello ตัวเลือกเทอร์มินัล .desktop ถูกตั้งค่าเป็นจริง

10
จะทราบได้อย่างไรว่าแพลตฟอร์มที่ทำงานคือ Ubuntu หรือ CentOS ด้วยความช่วยเหลือของสคริปต์ Bash?
ฉันรู้ว่าคำสั่งเพื่อตรวจสอบชื่อของเครื่อง Linux ที่ทำงานบนเครื่องของฉัน ตัวอย่างเช่น: อูบุนตู cat /etc/version CentOS cat /etc/issue ฉันจะรับเอาต์พุตจากเทอร์มินัลและเปรียบเทียบเพื่อดูว่าเป็น UBUNTU หรือ CENTOS และดำเนินการคำสั่งต่อไปนี้ได้อย่างไร? apt-get install updates หรือ yum update Ubuntu 14.04 cat /etc/issue

6
ฉันจะเขียนสคริปต์การติดตั้งแอปพลิเคชันเชลล์ได้อย่างไร
ไม่มีใครรู้วิธีเขียนเชลล์สคริปต์เพื่อติดตั้งรายการแอปพลิเคชันหรือไม่ เป็นเรื่องยากที่จะต้องติดตั้งแอปพลิเคชันด้วยตนเองทุกครั้งที่ฉันตั้งค่าระบบใหม่ แก้ไข: มันยังถามฉันDo you want to continue [Y/n]?อยู่ มีวิธีในการป้อนสคริปต์yหรือไม่ให้ป้อนข้อมูลหรือไม่

4
จะทำให้ Skype ใช้ alert-osd ได้อย่างไร?
ฉันจะทำให้ Skype ใช้งานการแจ้งเตือน - ค่าเริ่มต้นของ Ubuntu เพื่อแสดงการแจ้งเตือน (ข้อความขาเข้าผู้ใช้ที่เชื่อมต่อ ฯลฯ ) แทนที่จะเป็นกล่องข้อความ "น่าเกลียด" ของ Skype ได้อย่างไร

2
มีความแตกต่างระหว่าง“.” และ“ แหล่ง” ในการทุบตีหลังจากทั้งหมดหรือไม่
ฉันกำลังมองหาความแตกต่างระหว่าง "." และคำสั่ง builtin "source" และแหล่งข้อมูลบางแหล่ง (เช่นในการสนทนานี้และbash manpage) แนะนำว่าสิ่งเหล่านี้เหมือนกัน อย่างไรก็ตามหลังจากปัญหาเกี่ยวกับตัวแปรสภาพแวดล้อมฉันทำการทดสอบ ฉันสร้างไฟล์testenv.shที่มี: #!/bin/bash echo $MY_VAR ในคอมมานด์พรอมต์ฉันทำสิ่งต่อไปนี้: > chmod +x testenv.sh > MY_VAR=12345 > ./testenv.sh > source testenv.sh 12345 > MY_VAR=12345 ./testenv.sh 12345 [โปรดทราบว่าแบบฟอร์มที่ 1 ส่งคืนสตริงว่างเปล่า] ดังนั้นนี้ทดลองเล็ก ๆ น้อย ๆ แสดงให้เห็นว่ามีคือความแตกต่างหลังจากที่ทุกที่สำหรับคำสั่ง "ต้นฉบับ" เด็กสืบทอดตัวแปรสภาพแวดล้อมทั้งหมดจากผู้ปกครองคนหนึ่งที่สำหรับ "" มันไม่ใช่. ฉันไม่มีอะไรหรือนี้เป็นคุณลักษณะที่ไม่มีเอกสาร / เลิกการทุบตี ? [GNU bash, รุ่น …

3
“ chmod + x <filename>” ทำอะไรและฉันจะใช้ได้อย่างไร
ฉันต้องการเขียน Ubuntu แบบอะนาล็อกของ "แบตช์ไฟล์" (สคริปต์เชลล์) แต่ฉันไม่ทราบวิธีการใช้คำสั่งเพื่อทำให้สคริปต์สามารถทำงานได้ ฉันไม่รู้ว่าจะใช้ที่ไหนดีchmod +x filename


2
จะแสดงเวลาที่แก้ไขของไฟล์ได้อย่างไร?
ฉันต้องการวิธีค้นหาและพิมพ์เวลาที่แก้ไขของไฟล์เพื่อใช้ภายในสคริปต์ทุบตี ฉันมาด้วย: ls -l $filename | cut -d ' ' -f '6-8' ผลลัพธ์ใด: Jul 26 15:05 แม้ว่าฉันต้องการหลีกเลี่ยงการแยกวิเคราะห์lsแต่มันก็มีประโยชน์ที่จะมีปีอยู่ที่นั่น โดยหลักการแล้วฉันต้องการเห็นเอาต์พุตคล้ายกับเอาต์พุตดีฟอลต์ของdateคำสั่ง Tue Jul 26 15:20:59 BST 2016 มีวิธีการอื่นใดที่มีประโยชน์อีกบ้าง?

3
วิธีฆ่าสคริปต์ที่รันในเทอร์มินัลโดยไม่ปิดเทอร์มินัล (Ctrl + C ไม่ทำงาน)
ฉันได้เขียนสคริปต์ทุบตีที่เรียกโปรแกรมอื่น ๆ และดำเนินการคำสั่งมากมาย ฉันรันสคริปต์นี้จากเทอร์มินัล ตอนนี้ฉันต้องการฆ่าสคริปต์ การกดCtrl + Cบางครั้งก็ไม่ตัดฉันคิดว่าเพราะบางครั้งสคริปต์กำลังเรียกใช้งานโปรแกรมอื่นและด้วยเหตุผลบางอย่างที่สัญญาณการฆ่าไม่ทำงาน อย่างไรก็ตามถ้าฉันปิดหน้าต่างเทอร์มินัลมันจะฆ่าสคริปต์ มีบางอย่างที่ฉันสามารถทำได้ (การรวมกันของแป้นพิมพ์) ที่คล้ายกับการปิดหน้าต่างเทอร์มินัลโดยไม่ต้องปิดหน้าต่างเทอร์มินัลจริง ๆ (ฉันไม่ต้องการสูญเสียประวัติคำสั่งไดเรกทอรีปัจจุบันประวัติเอาท์พุท ฯลฯ )
35 bash  scripts 

3
เหตุใด rc.local จึงไม่เรียกใช้คำสั่งทั้งหมดของฉันและฉันต้องทำอย่างไรกับมัน
ฉันมีrc.localสคริปต์ต่อไปนี้: #!/bin/sh -e # # rc.local # # This script is executed at the end of each multiuser runlevel. # Make sure that the script will "exit 0" on success or any other # value on error. # # In order to enable or disable this script just change the …

2
ใช้“ ในขณะที่อ่าน…” ในสคริปต์ linux
ใครช่วยกรุณาอธิบายวิธีการทำงานของรหัสต่อไปนี้? echo '1 2 3 4 5 6' | while read a b c do echo $c $b $a done โดยเฉพาะฉันต้องการทราบว่าเหตุใดผลลัพธ์ของลูปนี้คือ3 4 5 6 2 1แทนที่จะเป็น3 2 1และ6 5 4แยกกันสองบรรทัด ฉันดูเหมือนจะห่อใจไม่ได้ ...
34 bash  scripts 

3
ข้อความแสดงข้อผิดพลาด 'แหล่งที่มา: ไม่พบ' เมื่อเรียกใช้สคริปต์
ฉันกำลังสร้างสคริปต์การตั้งค่าอัตโนมัติเล็กน้อยที่จะแก้ไข/etc/profileและ$HOME/.profileหากบางเส้นทางไม่ถูกส่งออก จากนั้นฉันต้องการโหลดซ้ำโดยอัตโนมัติ ฉันได้อ่านสิ่งsourceนี้แล้วฉันก็เลยเทอร์มินัลของฉันแล้วเข้า: source /etc/profile source ~/.profile จากเทอร์มินัลจะไม่แสดงข้อผิดพลาดใด ๆ source: not foundอย่างไรก็ตามการวางสองคำสั่งเหล่านี้ภายในผลสคริปต์ทุบตีใน ฉันจะแน่ใจได้อย่างไรว่าสคริปต์นั้นถูกใช้งานโดย Bash แม้ว่า#!/bin/shจะมีการระบุไว้ (เห็นได้ชัดว่ามันไม่ได้รับประกัน) ทำไมถึงบอกว่าไม่พบแหล่งที่มาทั้งสองนี้เมื่ออยู่ที่นั่นอย่างแน่แท้

6
แสดงคำว่า "cowsay" ในทุกเทอร์มินัลเซสชันใหม่
ฉันต้องการแสดงcowsayข้อความในทุกหน้าต่างเทอร์มินัล คำสั่งที่ฉันใช้คือ fortune | cowsay แนวคิดใดบ้างที่จะทำให้ปรากฏเมื่อใดก็ตามที่ฉันเริ่มเซสชันเทอร์มินัลใหม่

6
หมุนรูปภาพจากเทอร์มินัล
ฉันมีไดเรกทอรีที่มีรูปภาพจำนวนมาก แต่อยู่ในทิศทางที่ไม่ถูกต้อง ฉันต้องการหมุนภาพเพื่อแก้ไขทิศทาง (ส่วนใหญ่± 90 o ) การใช้โปรแกรมดูรูปภาพ (shotwell photo) ฉันสามารถหมุนมันทีละภาพโดยคลิกที่ปุ่มหมุน แต่มันน่าเบื่อเกินไป ฉันดูman shotwellแล้วshotwell --help-allแต่ไม่มีอะไรที่อธิบายวิธีเรียกใช้คำสั่งหมุนจากบรรทัดคำสั่ง มีวิธีใดบ้างที่ฉันสามารถเรียกใช้คำสั่งหมุนของ shotwell (หรือโปรแกรมดูอื่น ๆ ) จากเทอร์มินัลได้? หรือวิธีการอื่นในการหมุนภาพก็ยินดีเช่นกัน

6
สคริปต์พุ่งพรวดไม่เริ่มทำงาน
Ubuntu 10.04 ฉันได้สร้างสคริปต์ upstart นี้ ( /etc/init/pure-ftpd.conf ): # pure-ftpd - FTP server description "Pure-FTPd server" start on filesystem stop on runlevel S respawn respawn limit 10 5 pid file /var/run/pure-ftpd.pid console output pre-start script test -x /usr/local/sbin/pure-ftpd || { stop; exit 0; } end script exec /usr/local/sbin/pure-ftpd --maxclientsnumber 2 …

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