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

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

2
แทนที่กระบวนการปัจจุบันด้วยกระบวนการ / กระบวนการลูก
ฉันมีโปรแกรมPที่คาดว่าจะได้รับ "สวัสดี" และส่งออก "ทำไม" ก่อนที่จะให้คุณสมบัติ คุณลักษณะนี้ใช้งานโดยโปรแกรมอื่นที่ไม่ทราบว่ามันเป็นมารยาททั่วไปในการเริ่มการสนทนากับ "Hello" ฉันจึงต้องการเขียน wrapper สำหรับPที่ทำงานเช่นนี้ (ไวยากรณ์ zsh): coproc P print -p Hello # Send Hello to P read -pr line # Read what P has to say [[ "$line" = "Why?" ]] && Replace current process with the coprocess. echo Could not get P's attention. …
10 shell  scripting  process  zsh 

7
ฉันจะสร้างสคริปต์ให้นับด้วยห้าคนได้อย่างไร
ฉันพยายามสร้างสคริปต์ทุบตีที่ง่ายมากเพื่อแสดงรายการทวีคูณของห้าทั้งหมดระหว่าง 375 และ 3500 (375, 380, 385 ... ) สิ่งหนึ่งที่ฉันพยายามและไม่ได้ผลคือ: for i in {375..3500} do echo $i (($i += 5)) done ฉันสละเวลาสักครู่แล้วเขียนมันในภาษาเบสิกในเวลาประมาณ 15 วินาที: 10 count = 375 20 print count 30 count = count+5 40 if count < 3500 then goto 20 ฉันจะทำให้โปรแกรม BASIC เป็นสคริปต์ทุบตีได้อย่างไร
10 bash  shell  scripting 

5
แยกไฟล์ข้อความที่คั่นด้วยทุบตีเป็นข้อโต้แย้งคำสั่ง
ฉันมีไฟล์ข้อความแยกย่อยดังนี้: field1,field2,field3 xield1,xield2,xield3 dield1,dield2,dield3 gield1,gield2,gield3 แต่ละคอลัมน์เหล่านี้จะเป็นพารามิเตอร์ของโปรแกรมและฉันต้องการให้โปรแกรมถูกเรียกสำหรับแต่ละบรรทัด ฉันหวังว่าจะวนซ้ำบางอย่างเช่น: for $i in file command $field2 -x $field3 -PN -$field1 >> output done อะไรจะเป็นวิธีที่ดีที่สุดในการบรรลุสิ่งนี้ในทุบตี?

4
วิธีใช้ wc และ piping เพื่อค้นหาว่ามีไฟล์และไดเรคทอรีจำนวนเท่าใดในไดเรกทอรีหนึ่ง
ฉันจะใช้ตัวนับคำ ( wc) และการไพพ์เพื่อนับจำนวนไฟล์หรือไดเรกทอรีที่อยู่ใน/usr/binไดเรกทอรีได้อย่างไร


4
วิธี จำกัด เวลาที่โปรแกรมรันใน Linux?
python simulate.py <parameter list>ฉันมีหลายแบบจำลองในการทำแต่ละถูกเรียกด้วย ปัญหาเกี่ยวกับการจำลองเหล่านี้คือบางส่วนหยุดทำงานโดยไม่ต้องพูดถึงซึ่งทำให้ฉันไม่สามารถเรียกใช้งานเป็นชุดด้วยสคริปต์อย่างง่าย สิ่งที่ฉันต้องการคือรูปแบบของคำสั่ง "รันไทม์ - ข้อ จำกัด " ซึ่งจะฆ่ากระบวนการโดยอัตโนมัติ (ควรกดCtrl + C จริงๆ แต่ฉันคิดว่าการฆ่าแบบง่ายจะทำได้เช่นกัน) หลังจากเวลาที่กำหนดถ้า กระบวนการไม่ได้สิ้นสุดอย่างสง่างาม แน่นอนผมสามารถเขียนสคริปต์เช่นตัวเอง แต่ฉันสงสัยว่าคนที่ได้ทำมันแล้วก่อนที่ฉันดังนั้นฉันไม่จำเป็นต้องบูรณาการล้อใช้เวลากับps, timeและคู่มือทุบตี

4
รหัสไฮบริดในเชลล์สคริปต์ การแชร์ตัวแปร
คำตอบนี้กล่าวถึงวิธีการเรียกใช้ข้อมูลโค้ด Python หลายบรรทัดจากบรรทัดคำสั่งในเทอร์มินัล ฉันสังเกตว่าคำตอบนั้นใช้งานได้ดีในเชลล์สคริปแม้จะมีการเยื้องซ้อนกันซึ่งดีมากเช่น #!/bin/bash some_text="Hello world" echo $some_text cat <<EOF | python - import sys; for r in range(3): print r for a in range(2): print "hello" EOF พิมพ์: 0 hello hello 1 hello hello 2 hello hello อย่างไรก็ตามฉันมีช่วงเวลาที่ยากลำบากในการแชร์ตัวแปรระหว่างเชลล์สคริปต์และข้อมูลโค้ดของ Python ฉันจะรวบรวมเอาต์พุตของตัวห้อย python ในสคริปต์ทุบตีได้อย่างไร (เช่นในตัวแปรเช่น$output) ฉันจะส่งตัวแปร bash (เช่น$some_text) ไปยังสคริปต์ Python …
10 bash  scripting  zsh  python 

5
คุณจะปรับสีคำหลักบางคำสำหรับสคริปต์ทุบตีได้อย่างไร
ฉันใช้รหัสการทดสอบหน่วย โค้ดทดสอบหน่วยจะแสดงข้อความปกติ มีข้อความจำนวนมากดังนั้นฉันต้องการเน้นสำหรับคำหลักที่สำคัญของผู้ใช้ ในกรณีนี้คำหลักคือ "PASS" และ "FAIL" คุณเปลี่ยนสี "PASS" เป็นสีเขียวและ "FAIL" เป็นสีแดงได้อย่างไร

7
วิธีการรวมข้อความของบรรทัดที่เป็นตัวอักษรเข้ากับบรรทัดที่เป็นตัวเลขในเชลล์?
ฉันมีไฟล์ที่มีข้อความเช่นนี้: AAAA BBBB CCCC DDDD 1234 5678 9012 3456 EEEE 7890 ฯลฯ ... และฉันต้องการจับคู่ตัวอักษรกับบรรทัดตัวเลขเพื่อให้เป็นเช่นนี้: AAAA 1234 BBBB 5678 CCCC 9012 DDDD 3456 EEEE 7890 ไม่มีใครรู้วิธีง่ายๆในการบรรลุเป้าหมายนี้หรือไม่?

2
รายการองค์ประกอบที่มีช่องว่างใน zsh
ฉันได้ศึกษา zsh scripting เป็นเวลา 2 ชั่วโมงแล้วและฉันก็ตีกำแพง ฉันต้องการดูรายการไฟล์ที่อาจมีช่องว่างอยู่ ฉันเปิดให้วิธีที่แตกต่างอย่างสิ้นเชิงกว่าตัวอย่างต่อไปนี้ตราบใดที่พวกเขากำลัง zsh เนื่องจาก zsh คือสิ่งที่ฉันกำลังศึกษาไม่ใช่งานที่ฉันพยายามเขียน files=(`ls`) for f in $files; do print $f done เห็นได้ชัดว่าฉันไม่เพียงแค่สร้างlsใหม่ฉันแค่ต้องการ$fจับชื่อไฟล์ทั้งหมดในแต่ละการวนซ้ำของลูป
10 shell  scripting  zsh 

3
python == python2 หรือ python == python3? จะทำแพ็คเกจ, แจกจ่ายสคริปต์ python py2k ได้อย่างไร?
ทั้งนี้ขึ้นอยู่กับระบบpython== python2หรือ==pythonpython3 สคริปต์ Python ที่ทำงานได้เริ่มต้นด้วย: #!/usr/bin/env python #!/usr/bin/env python2 #!/usr/bin/env python3... สำหรับ python py3k มีให้ในเอกสารฉันควร / สามารถใช้กับหมายเลขเวอร์ชั่นได้ดังนั้นฉันจะทำสิ่งนี้: #!/usr/bin/env python3 แต่ฉันพบปัญหากับสคริปต์ py2k ในขณะที่อยู่ในเอกสารประกอบ py2kมันถูกเขียนขึ้นเพื่อใช้: #! /usr/bin/env python, ในบาง * nix-es python py3k เป็นค่าเริ่มต้นดังนั้น python == python3 (ตัวอย่างเช่นแพคเกจ ArchLinux pythonนี่คือไฟล์แพ็คเกจ python ) วิธีจัดทำแพ็กเกจ (กำหนดค่า, สร้าง) และ / หรือเตรียมสคริปต์ไพ ธ อนสำหรับการแจกจ่ายเพื่อจัดการกับสิ่งนั้น? ฉันถามเกี่ยวกับการสร้างชุดซอฟต์แวร์ที่ผู้ใช้สามารถเรียกใช้ได้ง่าย (โดยไม่ต้องดัดแปลงสภาพแวดล้อม) …

3
วิธีดูฟีด RSS สำหรับรายการใหม่จากสคริปต์ทุบตี?
ฉันต้องดูฟีด RSS จากเซิร์ฟเวอร์ฮัดสันของเรา #>play sound.wavทุกครั้งที่มีรายการใหม่ที่สามารถใช้ได้ฉันต้องการที่จะเล่นเสียงโดยการเรียก ไม่มีใครรู้เครื่องมือที่สามารถดู rss-feed และยิงคำสั่งทุกครั้งที่รายการใหม่ปรากฏขึ้น? ฉันได้ดูrsstailแต่จะได้รับรายการทั้งหมดจากฟีดไม่ใช่รายการล่าสุดหรือเฉพาะรายการที่ใหม่ตั้งแต่การค้นหาครั้งล่าสุด

5
IFS (Internal Field Separator) ทำหน้าที่เป็นตัวคั่นเดี่ยวสำหรับตัวคั่นหลายตัวต่อเนื่องกันได้หรือไม่?
การแยกอาร์เรย์โดยใช้ IFS ด้วยค่าที่ไม่ใช่ขาวสร้างองค์ประกอบที่ว่างเปล่า แม้แต่การใช้tr -sเพื่อย่อขนาด delim หลาย ๆ ตัวเป็น delim เดียวก็ไม่เพียงพอ ตัวอย่างอาจอธิบายปัญหาได้ชัดเจนยิ่งขึ้น .. มีวิธีการที่จะบรรลุผลลัพธ์ "ปกติ" ผ่าน tweaking ของ IFS (มีการตั้งค่าที่เกี่ยวข้องเพื่อเปลี่ยนพฤติกรรมของ IFS หรือไม่? ไอเอฟเอ var=" abc def ghi " echo "============== IFS=<default>" arr=($var) for x in ${!arr[*]} ; do echo "# arr[$x] \"${arr[x]}\"" done # sfi="$IFS" ; IFS=':' set -f # …
10 bash  shell  scripting 

3
ฉันสามารถใช้ตัวแปรในการขยาย Bash brace ได้หรือไม่?
ด้านล่างนี้เป็นโค้ดหลอกบางประเภทสำหรับสิ่งที่ฉันพยายามทำ: #!/bin/bash # I already have the variable below figured out (positive integer): numlines=$([returns number of lines containing specific characters in a file]) # This is basically what I want to do with it: for i in {1..$numlines}; do # the part below is already figured out as well: do …

6
วิธีตั้งค่า Ruby GEM_HOME และ GEM_PATH
ฉันเป็นผู้ใช้ NOVICE ของ Linux และใช้ Linux mint 17.1 ฉันติดตั้ง Linux Mint 20 ครั้งใน 3 วันล่าสุดสำหรับปัญหานั้น แต่ไม่สามารถแก้ไขได้ ฉันพยายามติดตั้ง ruby ​​บนรางโดยใช้ rvm สิ่งที่เกิดขึ้นคือถ้าเริ่มการติดตั้ง Linux ใหม่และลองติดตั้ง gem และ ruby ​​และสิ่งต่าง ๆ ในเซสชันเทอร์มินัลหนึ่งติดตั้งสำเร็จแล้วทันทีที่ฉันปิดเซสชันเทอร์มินัล . ด้วยการติดตั้งใหม่มากกว่า 20 ครั้งในช่วง 3 วันที่ผ่านมาฉันได้ค้นหาบนเว็บด้วย ฉันได้รับคำสั่งให้ใส่ตัวแปรสภาพแวดล้อมใน/etc/environmentพา ธ echoed ในเซสชันนั้นและวาง/etc/environmentไฟล์นั้นไว้ในไฟล์ แม้ตอนนี้ฉันไม่ได้รับอัญมณีที่ติดตั้ง เมื่อฉันพิมพ์rvm -vฉันได้รับข้อผิดพลาดดังต่อไปนี้ Warning: PATH set to RVM ruby but GEM_HOME …

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