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

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

4
สคริปต์ Bash จะบอกได้อย่างไรว่ามันทำงานอย่างไร
ฉันมีสคริปต์ Bash ที่ฉันพยายามทำเพื่อช่วยให้ฉันเรียกใช้คำสั่งที่ค่อนข้างซับซ้อนและมีการเปลี่ยนแปลงเล็กน้อยซึ่งมันจะถามฉันเกี่ยวกับเสียงสะท้อนและการอ่าน ฉันพบวิธีแก้ไขเพื่อบังคับให้รันเทอร์มินัลเพื่อเรียกใช้งานคำสั่ง แต่ฉันไม่สนใจสิ่งนั้น สิ่งที่ฉันต้องการให้ทำคือถ้าฉันว่างและกด Enter บนมันใน Nautilus (ทำให้มันรันด้วย Run Software) มันจะค่อยๆปรากฏขึ้นแจ้งเตือนว่า "กรุณาเรียกใช้จากเทอร์มินัล" ฉันสามารถทำให้ป๊อปอัปเกิดขึ้นได้ดังที่ฉันรู้จักคำสั่ง - แต่ฉันไม่สามารถรับ Bash script เพื่อบอกได้ว่ามันทำงานอยู่ภายใน terminal หรือไม่ดูเหมือนว่าจะคิดเสมอ เป็นไปได้ไหม

7
รับค่า ASCII ตัวเลขสำหรับอักขระ
ฉันพยายามเขียนเชลล์สคริปต์ที่ขออักขระ ASCII ในช่วง AZ หรือ az และส่งกลับค่าตัวเลขที่เทียบเท่ากัน ตัวอย่างเช่นผลลัพธ์อาจมีลักษณะดังต่อไปนี้: scarlet$ Please type a character between A and Z or between a and z: scarlet$ A scarlet$ The decimal value of A is: 65 ความพยายามของฉัน: #!/bin/bash echo Enter a letter: read A echo -n ${A} | od -i | head -1 | …

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

3
ทำให้ข้อความหายไปหลังจากที่ผู้ใช้ป้อน
มีวิธีที่คุณสามารถทำให้เนื้อหาที่แสดงหายไปหลังจากที่ผู้ใช้ป้อนข้อมูลหรือไม่ ตัวอย่างเช่นใช้ไฟล์นี้ด้านล่าง #!/bin/bash read -n 1 -p 'how are you ? ' var if [ "$var" == "y" ] then echo 'Have fun' else echo 'Go to Doctor' fi หากคุณเรียกใช้สิ่งนี้ผลลัพธ์คือ how are you ? yHave fun ฉันกำลังมองหาบางอย่างที่ทำให้ฉันhow are you ?หายไปทันทีที่ผู้ใช้กดปุ่ม และหลังจากหายไปพิมพ์ Have fun ดังนั้นฉันต้องการผลลัพธ์สุดท้ายของโปรแกรมข้างต้นเป็นเพียง Have fun หมายเหตุ: นอกจากนี้สิ่งใดที่อยู่เหนือสคริปต์นี้ที่พิมพ์บนหน้าจอเชลล์ไม่ควรลบ ฉันใช้ bash
9 bash  scripting 

2
ลบบรรทัดใหม่ในชื่อไฟล์
ฉันมีรหัส PHP ที่สร้างชื่อไฟล์ที่ wget จะผนวกบันทึกของมัน ฉันสร้างไฟล์มากกว่า 2000 ไฟล์ แต่ปัญหาคือฉันมีปัญหาในการทำงานกับพวกเขาเพราะฉันมีข้อผิดพลาดในการใส่PHP_EOLเป็นส่วนหนึ่งของชื่อรหัสนั้นจะเพิ่ม LF/line feed/%0Aที่ชื่อของมัน ตัวอย่างชื่อไฟล์ดังกล่าว (เมื่อเข้าถึงผ่านเบราว์เซอร์เมื่อใส่ / var / www / html) http://xxxx/wget_01_a%0a.txtให้สังเกต%0aก่อนชื่อนามสกุล ฉันสับสนและฉันหวังว่าจะมีแบทช์การเปลี่ยนชื่อที่จะค้นหาไฟล์ทั้งหมดและหากพบว่าline feedมันจะเปลี่ยนชื่อโดยไม่มีฟีดบรรทัดดังนั้นจึงเป็นเพียงhttp://xxxx/wget_01_a.txt ฉันไม่แน่ใจว่าจะจัดการกับสิ่งนี้ได้อย่างไรเพราะดูเหมือนว่าเมื่อฉันlsสวมบทบาทพิเศษทุกอย่างไม่ จำกัด ว่าตัวละครที่ไม่พึงประสงค์จะกลายเป็น?สิ่งที่ฉันต้องการเพียงเป้าหมายคือตัวดึงข้อมูลบรรทัดนั้น

1
ส่งออกรหัสผ่านจากตัวจัดการรหัสผ่าน 'รหัสผ่าน'
ฉันใช้ตัวpass จัดการรหัสผ่านมาประมาณหนึ่งปีแล้วและมันเยี่ยมมาก แต่บางครั้งฉันก็ชอบที่จะทดสอบตัวจัดการรหัสผ่านอื่น ๆ จากนั้นฉันก็ต้องใช้รหัสผ่านของฉันอีกครั้ง จนถึงตอนนี้ฉันเพิ่งเพิ่มพวกเขาด้วยตนเองตามที่ฉันต้องการ แต่ถ้าฉันต้องการย้ายไปยังตัวจัดการรหัสผ่านอื่นฉันต้องการสคริปต์เพราะฉันไม่มีความอดทนที่จะทำทีละตัวเพราะฉันมี ร้อย (ถ้าไม่มาก) เป็นไปได้ไหม? มีทางออกอยู่แล้ว? ฉันค้นหาวิธีแก้ปัญหาเปิดและปิดในช่วงสองสามเดือนที่ผ่านมาและไม่สามารถหาวิธีที่ "แค่เรียกใช้สคริปต์นี้และส่งออกบูม" มีสคริปต์เช่นนี้หรือไม่? ถ้าไม่ฉันควรทำอะไรหรือที่ไหน

8
ค้นหาไฟล์ PDF ซ้ำตามเนื้อหา
วารสารบางฉบับสร้าง PDF ที่แตกต่างกันสำหรับการดาวน์โหลดแต่ละครั้ง APS เช่นเก็บเวลาและที่อยู่ IP ใน PDF หรือมีรุ่นกระดาษที่มีการเชื่อมโยงหลายมิติและรุ่นที่มีการอ้างอิงข้อความ เป็นไปได้อย่างไรที่จะค้นหาการดาวน์โหลดเอกสารที่มีเนื้อหาเท่ากัน 90% บนระบบ linux โดยใช้ซอฟต์แวร์โอเพ่นซอร์ส ฉันได้รับความคิดเกี่ยวกับการแปลงไฟล์ PDF pdf2txtไปยังข้อความธรรมดาในไดเรกทอรีชั่วคราว จากนั้นฉันสามารถกรองชื่อไฟล์ทั้งหมดที่ให้diff a bผลลัพธ์มากกว่าเส้น x แต่นี่ไม่ได้สวยงามเลยและจะล้มเหลวกับสิ่งพิมพ์ที่สแกน วารสารมักจะไม่ให้ข้อความ OCR สำหรับสิ่งพิมพ์เก่า ฉันลองcompareในชุด ImageMagick ด้วย แต่ฉันไม่สามารถจัดการไฟล์ PDF หลายไฟล์ได้ด้วยเครื่องมือนี้ diffpdf 2.1.1ทำงานได้ดีใน GUI บนสองไฟล์ แต่ฉันไม่สามารถหาวิธีนำไปใช้กับไฟล์จำนวนมากได้และเวอร์ชันล่าสุดไม่สามารถใช้ได้ภายใต้ใบอนุญาตโอเพนซอร์สใด ๆ

1
ฉันจะพิมพ์ทั้งหมดยกเว้นบรรทัดที่ N ถึงบรรทัดสุดท้ายได้อย่างไร?
ฉันต้องการทำส่วนประกอบ / "ตรงกันข้าม" ของ sed 13q;d <file.txt โดยทั่วไปแล้วเป็นไปได้ไหมที่เราจะทำส่วนเติมเต็ม / ผกผัน / ตรงกันข้ามในนี้sedหรือไม่? หรือเฉพาะสำหรับ regexes ฉันจะพิมพ์ทั้งหมดยกเว้นบรรทัดที่สามถึงครั้งสุดท้ายได้อย่างไร สิ่งนี้ต้องใช้สองtacและนับไปข้างหน้าsedหรือไม่? หรือมีวิธีที่จะทำให้sedตัวเองนับจากด้านหลัง?

1
การแปลงไฟล์. docx เป็นข้อความธรรมดาและเก็บรักษาตัวแบ่งบรรทัดเพื่อรักษาการอ้างอิงหมายเลขบรรทัดไปยังเอกสารต้นทาง: วิธีการ & นัย?
ฉันกำลังส่งออกเนื้อหาMS Wordเป็นข้อความธรรมดาเพื่อใช้กับโปรแกรมอรรถประโยชน์ข้อความและไฟล์ ฉันมีข้อ จำกัด ที่คุณสมบัติการกำหนดหมายเลขบรรทัดถูกเปิดใช้งานในซอฟต์แวร์ MS และการอ้างอิงใด ๆ กับหมายเลขบรรทัดในผลลัพธ์สุดท้ายจะต้องตรงกับการกำหนดหมายเลขนั้น ดังนั้นป้อน "หมายเลขบรรทัด": ( Poe, EA ) เห็นได้ชัดว่าสำหรับWord การเรียงลำดับหมายเลขนั้นไม่ทำให้บรรทัดใหม่ขึ้นบรรทัดใหม่แต่จะแบ่ง "บรรทัด" หลังจากระยะห่างที่ถูกต้อง (หรือบางอย่าง) สคริปต์เช่นdocx2txtนี้ไม่ได้พิจารณาถึงสิ่งนี้ตามค่าเริ่มต้นแล้วจะมีการขึ้นบรรทัดใหม่ที่บรรทัดใหม่ ดังนั้นหากฉันใช้grep -nกับการกำหนดหมายเลขบรรทัดจะไม่ตรงกับคุณลักษณะหมายเลขบรรทัดซอร์สดังที่แสดงด้านบน ยังไม่ชัดเจนจากเอกสารว่าฉันจะต้องแก้ไขสคริปต์ Perl เพื่อแปลงไฟล์แบบที่ฉันต้องการในกรณีนี้: our $config_newLine = "\n"; # Alternative is "\r\n". our $config_lineWidth = 80; # Line width, used for short line justification. ฉันพยายามทำหน้าที่แทน\nสำหรับ\r\nแต่ที่ดูเหมือนจะไม่ทำงานสำหรับฉัน ดังนั้นฉันจึงหันไปใช้การส่งออกเอกสารโดยตรงจากWordด้วยการตั้งค่าต่อไปนี้ (บันทึกเป็นข้อความธรรมดาบน v.2013,64 …

3
ฉันจะสร้างสคริปต์พาร์ติชันเดียวที่ใช้อุปกรณ์ทั้งหมดได้อย่างไร
ฉันใช้สิ่งนี้เพื่อแบ่งพาร์ติชันและเมานต์ EBS บนอินสแตนซ์ของ Amazon EC2 โดยเฉพาะ แต่จริงๆแล้วนี่ควรใช้กับการเริ่มต้นไดรฟ์ใหม่ ตามที่คำถามบอกว่าฉันต้องการสคริปต์การสร้างพาร์ติชันหลักเดียวซึ่งใช้พื้นที่ที่มีอยู่ทั้งหมดบนอุปกรณ์ที่กำหนด ฉันไม่ทราบล่วงหน้าว่าอุปกรณ์มีขนาดใหญ่เพียงใดและอาจมีขนาดใหญ่มาก (เช่นหลาย TB) ในการวิจัยนี้ดูเหมือนว่าpartedเป็นคำสั่งที่ดีที่สุดที่จะใช้สำหรับการเขียนสคริปต์ ฉันคิดว่าบางสิ่งที่ตามparted /dev/sdf mkpart primary 0 ENDต้องการคือสิ่งที่ฉันต้องการ แต่ฉันมีเวลาที่ยากลำบากในการหาวิธีที่สง่างามในการกำหนดสิ่งที่ควรจะเป็นปลาย ไม่มีใครรู้วิธีที่ง่ายในการทำเช่นนี้?

5
วิธีเพิ่มบรรทัดลงในไฟล์ที่มีสิทธิ์การเขียนรูทเท่านั้นและดำเนินการสคริปต์ต่อไป
ฉันพยายามเรียนรู้สคริปต์ทุบตี ฉันทำงานเกี่ยวกับปัญหาการปฏิบัติและ ณ จุดหนึ่งฉันต้องเพิ่มบรรทัดลงในไฟล์ที่ต้องrootได้รับอนุญาตในการเขียน รหัสมีลักษณะดังนี้: # some code echo "add this line to the code" >> fileName # some code เป็นไปได้ไหมที่สคริปต์จะขอรหัสผ่านรูทตรวจสอบรหัสผ่านและการรับรองความถูกต้องที่ประสบความสำเร็จในการแก้ไขไฟล์? สคริปต์ควรกลับสู่โหมดผู้ใช้และดำเนินการคำสั่งต่อไป

1
ยืนยันการออกโดยใช้กับดัก
ฉันพยายามดักCtrl+Cสัญญาณเพื่อขอคำยืนยันจากผู้ใช้ ส่วนการดักจับทำงานได้ดี แต่เมื่อสัญญาณถูกดักจับมันจะไม่กลับสู่การทำงานปกติ แต่จะออกจากสคริปต์แทน วิธีทำให้มันทำงานต่อเมื่อผู้ใช้กดหมายเลข นี่คือรหัสของฉัน hell() { echo "Do you want to quit? Press 1 for yes and 0 for no"; read n; if [ $n == 1 ]; then exit 1; fi } trap "hell" SIGINT find /

7
วิธีรันคำสั่งในโหมดแบตช์เหนือ ssh?
ฉันจะรันคำสั่งในโหมดแบตช์ผ่าน ssh ได้อย่างไร นั่นคือสิ่งที่sshเทียบเท่าคำสั่งคือsftp -b <filename> <hostname>อะไร? ฉันมีชุดคำสั่งที่ฉันต้องการเรียกใช้ข้ามชุดโฮสต์ที่เชื่อมต่อsshกัน กว่าsftpฉันเก็บคำสั่งในไฟล์filenameและเชื่อมต่อกับโฮสต์และเรียกใช้คำสั่งโดยใช้คำสั่งดังกล่าวก่อนหน้า เป็นไปได้sshไหม?

2
ทำซ้ำเอาต์พุตของคำสั่งใน bash โดยไม่มีเชลล์ย่อย
ฉันต้องการวนลูปผลลัพธ์ของคำสั่งโดยไม่สร้าง sub-shell หรือใช้ไฟล์ชั่วคราว เวอร์ชันเริ่มต้นของสคริปต์ของฉันมีลักษณะเช่นนี้ แต่สิ่งนี้ไม่ทำงานเนื่องจากจะสร้าง subshell และexitคำสั่งจะยกเลิก subshell แทนสคริปต์หลักที่ต้องการ เป็นส่วนหนึ่งของสคริปต์ที่มีขนาดใหญ่กว่ามากเพื่อกำหนดค่าการกำหนดเส้นทางนโยบายและจะหยุดการทำงานหากตรวจพบเงื่อนไขที่จะทำให้การกำหนดเส้นทางล้มเหลว sysctl -a 2>/dev/null | grep '\.rp_filter' | while read -r -a RPSTAT ; do if [[ "0" != "${RPSTAT[2]}" ]] ; then echo >&2 "RP Filter must be disabled on all interfaces!" echo >&2 "The RP filter feature is incompatible …

1
แทนที่หลายบรรทัดใน sed หรือ awk [ปิด]
ปิด คำถามนี้ต้องการรายละเอียดหรือความคมชัด ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ เพิ่มรายละเอียดและชี้แจงปัญหาโดยแก้ไขโพสต์นี้ ปิดให้บริการใน5 ปีที่ผ่านมา ฉันกำลังพยายามใช้ sed หรือ awk เพื่อแทนที่ 5 บรรทัดในไฟล์ smb แต่ฉันไม่มีความคิดวิธีจัดการกับการขึ้นบรรทัดใหม่
9 sed  awk  scripting  perl 

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