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

การเขียนสคริปต์เป็นรูปแบบของการเขียนโปรแกรมโดยทั่วไปมีลักษณะเป็นทางการต่ำพิมพ์หลวมและไม่ต้องการการรวบรวมที่ชัดเจน มีภาษาสคริปต์จำนวนมากและสิ่งเหล่านี้ใช้ในสถานการณ์ที่หลากหลาย - แอปพลิเคชันบรรทัดคำสั่ง, GUI, แอปพลิเคชันฝั่งเซิร์ฟเวอร์, โมดูลส่วนขยาย

10
วิธีลบรายการออกจากพจนานุกรมในขณะที่วนซ้ำมัน
การลบรายการออกจากพจนานุกรมใน Python นั้นถูกต้องตามกฎหมายหรือไม่ ตัวอย่างเช่น: for k, v in mydict.iteritems(): if k == val: del mydict[k] แนวคิดคือการลบองค์ประกอบที่ไม่ตรงตามเงื่อนไขบางอย่างจากพจนานุกรมแทนที่จะสร้างพจนานุกรมใหม่ที่เป็นส่วนย่อยขององค์ประกอบที่ถูกทำซ้ำ นี่เป็นทางออกที่ดีใช่ไหม มีวิธีที่หรูหรา / มีประสิทธิภาพมากขึ้น?

10
ดำเนินการคำสั่งกับไฟล์ทั้งหมดในไดเรกทอรี
ใครก็ได้โปรดให้รหัสที่จะทำต่อไปนี้: สมมติว่ามีไดเรกทอรีของไฟล์ทั้งหมดที่จะต้องทำงานผ่านโปรแกรม โปรแกรมจะแสดงผลลัพธ์ออกมาเป็นมาตรฐาน ฉันต้องการสคริปต์ที่จะเข้าไปในไดเรกทอรีรันคำสั่งในแต่ละไฟล์และต่อผลลัพธ์เป็นไฟล์ขนาดใหญ่ไฟล์เดียว ตัวอย่างเช่นการเรียกใช้คำสั่งใน 1 ไฟล์: $ cmd [option] [filename] > results.out
290 bash  scripting 


13
วิธีการจำลองสภาพแวดล้อม cron รันสคริปต์ด้วย?
ปกติฉันมีปัญหาหลายอย่างเกี่ยวกับวิธีที่ cron เรียกใช้งานสคริปต์เนื่องจากปกติไม่มีการตั้งค่าสภาพแวดล้อมของฉัน มีวิธีในการเรียกใช้ bash (?) ในลักษณะเดียวกับ cron หรือไม่ดังนั้นฉันจึงสามารถทดสอบสคริปต์ก่อนติดตั้งได้หรือไม่
253 bash  scripting  cron 

11
ฉันจะ ssh ไปยังไดเรกทอรีเฉพาะได้อย่างไร
ฉันมักจะต้องลงชื่อเข้าใช้หนึ่งในเซิร์ฟเวอร์หลายเครื่องและไปที่หนึ่งในหลาย ๆ ไดเรกทอรีในเครื่องเหล่านั้น ขณะนี้ฉันทำอะไรบางอย่างแบบนี้: localhost ~] $ ssh บางโฮสต์ ยินดีต้อนรับสู่ somehost! somehost ~] $ cd / some / directory / บางแห่ง / ตั้งชื่อ / Foo somehost Foo] $ ฉันมีสคริปต์ที่สามารถกำหนดโฮสต์และไดเรกทอรีที่ฉันต้องเข้าไป แต่ฉันไม่สามารถหาวิธีทำสิ่งนี้: localhost ~] $ go_to_dir Foo ยินดีต้อนรับสู่ somehost! somehost Foo] $ มีวิธีที่ง่ายฉลาดหรือมีวิธีการใด ๆ
248 bash  shell  scripting  ssh 

8
วิธีรันเชลล์สคริปต์ใน OS X ด้วยการดับเบิลคลิก
ฉันมีเชลล์สคริปต์ที่ได้รับอนุญาตให้ดำเนินการกับผู้ใช้ใน OS X แต่เมื่อฉันคลิกสองครั้งมันจะเปิดขึ้นในโปรแกรมแก้ไขข้อความ ฉันจะทำให้มันทำงานโดยดับเบิลคลิกได้อย่างไร

14
วิธีที่ดีที่สุดในการจำลอง "กลุ่มโดย" จากทุบตี?
สมมติว่าคุณมีไฟล์ที่มีที่อยู่ IP หนึ่งที่อยู่ในแต่ละบรรทัด: 10.0.10.1 10.0.10.1 10.0.10.3 10.0.10.2 10.0.10.1 คุณต้องการเชลล์สคริปต์ที่นับจำนวนที่อยู่ IP แต่ละรายการที่ปรากฏในไฟล์ สำหรับอินพุตก่อนหน้านี้คุณต้องการเอาต์พุตต่อไปนี้: 10.0.10.1 3 10.0.10.2 1 10.0.10.3 1 วิธีหนึ่งในการทำเช่นนี้คือ: cat ip_addresses |uniq |while read ip do echo -n $ip" " grep -c $ip ip_addresses done อย่างไรก็ตามมันอยู่ไกลจากการมีประสิทธิภาพ คุณจะแก้ปัญหานี้อย่างมีประสิทธิภาพยิ่งขึ้นด้วยการใช้ bash ได้อย่างไร (สิ่งหนึ่งที่เพิ่มเติม: ฉันรู้ว่ามันสามารถแก้ไขได้จาก perl หรือ awk ฉันสนใจวิธีที่ดีกว่าในการทุบตีไม่ใช่ในภาษาเหล่านั้น) ข้อมูลเพิ่มเติม: สมมติว่าไฟล์ต้นฉบับคือ 5GB และเครื่องที่ใช้อัลกอริทึมมี 4GB …
231 bash  scripting 

8
ฉันจะเขียนสคริปต์ทุบตีเพื่อเริ่มต้นกระบวนการใหม่ได้อย่างไรถ้ามันตาย?
ฉันมีสคริปต์หลามที่จะตรวจสอบคิวและดำเนินการกับแต่ละรายการ: # checkqueue.py while True: check_queue() do_something() ฉันจะเขียนสคริปต์ทุบตีที่จะตรวจสอบว่ามันทำงานอยู่หรือไม่และเริ่มต้นได้อย่างไร รหัสหลอกต่อไปนี้คร่าวๆ (หรือบางทีมันควรจะทำอะไรเช่นps | grepนี้): # keepalivescript.sh if processidfile exists: if processid is running: exit, all ok run checkqueue.py write processid to processidfile ฉันจะเรียกสิ่งนั้นจาก crontab: # crontab */5 * * * * /path/to/keepalivescript.sh
226 bash  scripting  cron 

3
การเขียนสคริปต์ bash: หากอาร์กิวเมนต์มีค่าเท่ากับสตริงนี้ให้กำหนดตัวแปรเช่นเดียวกับสตริงนี้
ฉันกำลังทำสคริปต์ทุบตีและตอนนี้ฉันได้รับการเรียกตัวแปรsourceหนึ่งและหนึ่งอาร์เรย์เรียกว่าsamplesเช่นนี้: source='country' samples=(US Canada Mexico...) เนื่องจากฉันต้องการขยายจำนวนแหล่งข้อมูล (และแหล่งที่มาแต่ละแห่งมีตัวอย่างของตัวเอง) ฉันพยายามเพิ่มอาร์กิวเมนต์บางอย่างเพื่อทำสิ่งนี้ ฉันลองสิ่งนี้: source="" samples=("") if [ $1="country" ]; then source="country" samples="US Canada Mexico..." else echo "try again" fi แต่เมื่อฉันเรียกใช้สคริปต์ของฉันsource countries.sh countryมันไม่ทำงาน ผมทำอะไรผิดหรือเปล่า?

12
Python อ่านโฟลเดอร์แบบเรียกซ้ำ
ฉันมีพื้นหลัง C ++ / Obj-C และฉันเพิ่งค้นพบ Python (เขียนเป็นเวลาประมาณหนึ่งชั่วโมง) ฉันกำลังเขียนสคริปต์เพื่ออ่านเนื้อหาไฟล์ข้อความซ้ำ ๆ ในโครงสร้างโฟลเดอร์ ปัญหาที่ฉันมีคือรหัสที่ฉันเขียนจะใช้ได้กับโฟลเดอร์เดียวเท่านั้น ฉันเห็นได้ว่าทำไมในรหัส (ดู#hardcoded path) ฉันไม่รู้ว่าฉันจะก้าวไปข้างหน้ากับ Python ได้อย่างไรเพราะประสบการณ์ของฉันกับมันเป็นแค่แบรนด์ใหม่เท่านั้น รหัสหลาม: import os import sys rootdir = sys.argv[1] for root, subFolders, files in os.walk(rootdir): for folder in subFolders: outfileName = rootdir + "/" + folder + "/py-outfile.txt" # hardcoded path folderOut = …

19
วิธีแก้ไขลิงก์สัญลักษณ์ในเชลล์สคริปต์
กำหนดเส้นทางแบบสัมบูรณ์หรือสัมพัทธ์ (ในระบบเหมือน Unix) ฉันต้องการกำหนดเส้นทางแบบเต็มของเป้าหมายหลังจากแก้ไข symlink ระดับกลางใด ๆ คะแนนโบนัสสำหรับการแก้ไข ~ เครื่องหมายของชื่อผู้ใช้ในเวลาเดียวกัน หากเป้าหมายคือไดเรกทอรีอาจเป็นไปได้ที่จะ chdir () ลงในไดเรกทอรีแล้วเรียกใช้ getcwd () แต่ฉันต้องการทำสิ่งนี้จากเชลล์สคริปต์แทนที่จะเขียนตัวช่วย C น่าเสียดายที่ shells มีแนวโน้มที่จะพยายามซ่อนการมี symlink จากผู้ใช้ (นี่คือ bash บน OS X): $ ls -ld foo bar drwxr-xr-x 2 greg greg 68 Aug 11 22:36 bar lrwxr-xr-x 1 greg greg 3 Aug 11 22:36 …
220 bash  shell  scripting  symlink 

14
ฉันจะสร้าง DMG ที่ดูดีสำหรับ Mac OS X โดยใช้เครื่องมือบรรทัดคำสั่งได้อย่างไร
ฉันต้องสร้างตัวติดตั้งที่ดีสำหรับแอปพลิเคชัน Mac ฉันต้องการให้เป็นดิสก์อิมเมจ (DMG) ที่มีขนาดกำหนดไว้ล่วงหน้าเลย์เอาต์และรูปภาพพื้นหลัง ฉันต้องทำสิ่งนี้โดยทางโปรแกรมในสคริปต์เพื่อรวมไว้ในระบบการสร้างที่มีอยู่ (ระบบแพ็คมากขึ้นจริงๆเพราะมันเพียงสร้างการติดตั้ง ฉันสร้าง DMG เสร็จแล้วโดยใช้ "hdiutil" สิ่งที่ฉันยังไม่ทราบคือวิธีการจัดวางไอคอนและระบุบิตแมปพื้นหลัง

4
คุณจะรันคำสั่งดั้งเดิมโดยพลการจากสตริงได้อย่างไร?
ฉันสามารถแสดงความต้องการของฉันกับสถานการณ์ต่อไปนี้: เขียนฟังก์ชั่นที่ยอมรับสตริงที่จะเรียกใช้เป็นคำสั่งดั้งเดิม มันไม่ได้ดึงความคิดที่ไกลเกินไป: หากคุณกำลังเชื่อมต่อกับยูทิลิตี้บรรทัดคำสั่งอื่น ๆ จากที่อื่น ๆ ใน บริษัท ที่ให้คำสั่งให้คุณรันคำต่อคำ เพราะคุณไม่ได้ควบคุมคำสั่งคุณต้องยอมรับคำสั่งที่ถูกต้องเป็น input นี่คืออาการสะอึกหลักที่ฉันไม่สามารถเอาชนะได้ง่าย: คำสั่งอาจดำเนินการโปรแกรมที่อยู่ในพา ธ ที่มีช่องว่างอยู่: $command = '"C:\Program Files\TheProg\Runit.exe" Hello'; คำสั่งอาจมีพารามิเตอร์ที่มีช่องว่างในพวกเขา: $command = 'echo "hello world!"'; คำสั่งอาจมีทั้งเห็บเดี่ยวและคู่: $command = "echo `"it`'s`""; มีใดวิธีทำความสะอาดการบรรลุนี้หรือไม่? ฉันทำได้แค่คิดวิธีการฟุ่มเฟือยและการแก้ปัญหาที่น่าเกลียด แต่สำหรับภาษาสคริปต์ฉันรู้สึกว่ามันน่าจะง่าย

5
ตรวจสอบว่าสตริงตรงกับ regex ใน Bash script หรือไม่
หนึ่งในข้อโต้แย้งที่สคริปต์ของฉันได้รับคือวันที่ในรูปแบบต่อไปนี้: yyyymmddหนึ่งของการขัดแย้งที่สคริปต์ของฉันได้รับคือวันในรูปแบบต่อไปนี้: ฉันต้องการตรวจสอบว่าฉันได้รับวันที่ถูกต้องเป็นอินพุตหรือไม่ ฉันจะทำสิ่งนี้ได้อย่างไร ฉันพยายามใช้ regex เช่น:[0-9]\{\8}
204 regex  bash  shell  scripting 

10
วิธีเปลี่ยนเส้นทางเอาต์พุตของ PowerShell ไปยังไฟล์ระหว่างการดำเนินการ
ฉันมีสคริปต์ PowerShell ซึ่งฉันต้องการจะเปลี่ยนเส้นทางผลลัพธ์ไปยังไฟล์ ปัญหาคือฉันไม่สามารถเปลี่ยนวิธีเรียกสคริปต์นี้ได้ ดังนั้นฉันไม่สามารถทำ: .\MyScript.ps1 > output.txt ฉันจะเปลี่ยนเส้นทางการส่งออกของสคริปต์ PowerShell ในระหว่างการดำเนินการได้อย่างไร

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