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

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

2
ฉันจะทำให้ระบบของฉันลบไฟล์ทั้งหมดในไดเรกทอรีที่เก่ากว่าเวลาที่กำหนดในขณะที่รักษาโครงสร้างไดเรกทอรีเหมือนเดิมได้อย่างไร
ฉันมีไดเรกทอรีในเครื่องของฉันคิดว่ามันเป็นtmpไดเรกทอรีของฉันเองแต่อยู่ใน~ไดเรกทอรีของฉัน และฉันต้องการที่จะทำให้ระบบของฉันทุก 3 ชั่วโมงลบไฟล์ทั้งหมดใน (แม้ว่าการรักษาโครงสร้างไดเรกทอรีไว้เหมือนเดิม แต่ยังคงลบไฟล์ทั้งหมดในทุกระดับของไดเรกทอรีซ้ำ) ไดเรกทอรีที่เก่ากว่าวัน ฉันใช้ Ubuntu GNOME 15.10 กับ GNOME 3.18 ฉันสามารถทำได้หรือไม่ และถ้าเป็นเช่นนั้นได้อย่างไร ฉันต้องการให้อัตโนมัติโดยไม่ต้องมีการโต้ตอบกับผู้ใช้ นี่ควรเป็นสิ่งที่เริ่มต้นโดยอัตโนมัติเมื่อฉันเข้าสู่ระบบดังนั้นฉันจึงไม่จำเป็นต้องเรียกใช้บางอย่างในทุกการเริ่มต้น

4
วิธีแก้ไขข้อผิดพลาด“ ไม่ใช่ตัวระบุที่ถูกต้อง” หลังจากตั้งค่าตัวแปรสภาพแวดล้อม
ฉันพยายามติดตั้ง cocos2dx ใน Ubuntu 14.04 LTS แต่หลังจากตั้งค่าตัวแปรสภาพแวดล้อม (ใน.bashrc) ฉันเริ่มได้รับข้อผิดพลาดนี้: bash: export: dev/cocos2d-x-3.2/tools/cocos2d-console/bin': not a valid identifier bash: export:/home/john/android': not a valid identifier bash: export: dev/android-ndk-r10b': not a valid identifier bash: export:dev/adt-bundle-linux-x86_64-20140702/sdk': not a valid identifier และฉันไม่รู้จะแก้ไขอย่างไร

2
วิธีรันแอพพลิเคชั่นตามเวลาที่ตั้งไว้ในเชลล์
ถ้าและอย่างไรเป็นไปได้Terminalอย่างไรที่จะได้รับแอปพลิเคชันให้ทำงานเป็นเวลา 30 วินาทีก่อนที่จะถูกปิดและสะท้อนบันทึกของกระบวนการนั้น


4
เปิดแอปพลิเคชั่นใน Windows จากเดสก์ท็อป Ubuntu
ฉันต้องการเขียนเชลล์สคริปต์ใน Ubuntu ที่ทำสิ่งต่อไปนี้: บูตระบบปฏิบัติการ Windows 7 guest ใน Virtualbox หากยังไม่ได้เปิดใช้งาน รันเชลล์สคริปต์ใน Windows ที่เชลล์สคริปต์ถูกเรียกใช้จากระบบปฏิบัติการโฮสต์ Ubuntu เป้าหมายของฉันคือการสร้างตัวเรียกใช้งานแอปบนเดสก์ท็อปโฮสต์ Ubuntu สำหรับแอปพลิเคชันบนระบบปฏิบัติการเกส ตัวอย่างเช่นฉันสามารถสร้างทางลัดสำหรับ Visual Studio บนเดสก์ท็อป Ubuntu ที่เปิดตัว Visual Studio ใน Windows ฉันต้องการที่จะเปิดใช้งานแอปพลิเคชัน Windows โดยตรงจากเดสก์ท็อป Ubuntu แทนที่จะรอให้ Windows เริ่มต้นทำงานก่อนที่จะคลิกทางลัดแอปพลิเคชัน

5
สคริปต์ Run (ระบบ) ในการเข้าสู่ระบบ SSH และ / หรือออกจากระบบ
ฉันต้องการเซิร์ฟเวอร์ OpenSSH ของฉันเพื่อเริ่มต้นสคริปต์เมื่อใดก็ตามที่ผู้ใช้ลงชื่อเข้าใช้ด้วย SSH โดยผ่านชื่อโฮสต์หรือ IP รวมถึงชื่อผู้ใช้ นอกจากนี้ฉันต้องการให้เรียกใช้สคริปต์เมื่อใดก็ตามที่เซสชันสิ้นสุดลง (ส่งชื่อผู้ใช้) สคริปต์เหล่านี้ไม่ควรรันในเซสชันของผู้ใช้ แต่เป็นระบบทั้งระบบ แนวคิดคือการให้คำเตือนเสียงในการเข้าสู่ระบบและออกจากระบบเช่นการใช้espeakและเพื่อแสดงข้อมูลบนจอแสดงผลภายนอก ฉันเคยเห็นว่ามีpam-scriptsแพ็คเกจ แต่ฉันไม่แน่ใจว่าสิ่งนี้เป็นสิ่งที่ฉันต้องการหรือไม่และจะใช้อย่างไร
12 ssh  server  scripts  session 

3
ความหมายของ & ในตอนท้ายของคำสั่งคืออะไร?
ฉันมีบรรทัดสคริปต์เริ่มต้น: pyprogramm >> /dev/null 2>&1 & ความหมาย: >> /dev/null - redirect stdout to null device 2>&1 - redirect stderr to stdout (that is redirected to null device) แต่สุดท้าย&หมายถึงอะไร

5
มีบางสิ่งที่คล้ายกับ echo -n ใน heredoc (EOF) หรือไม่?
ฉันกำลังเขียนสคริปต์โรงงานสคริปต์ขนาดใหญ่ที่สร้างสคริปต์บำรุงรักษามากมายสำหรับเซิร์ฟเวอร์ของฉัน จนถึงตอนนี้ฉันเขียนบางบรรทัดที่ต้องเขียนเป็นบรรทัดเดียวecho -neเช่น echo -n "if (( " | sudo tee -a /usr/local/bin/upgradeAllServers &> /dev/null # Generate exitCode check for each Server IFS=" " COUNT=0 while read -r name ipAddr do if(($COUNT != 0)) then echo -n " || " | sudo tee -a /usr/local/bin/upgradeAllServers &> /dev/null fi echo -n …
12 bash  scripts 

1
ฉันจะแก้ไขคำเตือนได้อย่างไร: การแทนที่คำสั่ง: ละเว้น null byte ในอินพุต
ฉันมีสคริปต์ที่ทำงานที่ต้องใช้การแจ้งเตือนการส่ง แต่ทำงานเป็นรูท สิ่งเดียวที่ฉันพบว่าทำงานได้คือสคริปต์นี้ ปัญหาคือว่าในบรรทัดนี้: DBUS_SESSION=`grep -z DBUS_SESSION_BUS_ADDRESS /proc/$DBUS_PID/environ | sed -e s/DBUS_SESSION_BUS_ADDRESS=//` ฉันได้รับข้อผิดพลาด warning: command substitution: ignored null byte in input ฉันจะแก้ไขหรือระงับข้อความแสดงข้อผิดพลาดได้อย่างไร โดยวิธีการดังต่อไปนี้ไม่ได้ปราบปราม: 2> /dev/null > /dev/null >> /dev/null > /dev/null 2>&1 2>&1

2
ใช้. sh ทุก ๆ 5 นาที
ฉันมีสคริปต์. sh ที่ดาวน์โหลดภาพถ่ายจากเซิร์ฟเวอร์ของดาวเทียมญี่ปุ่นและตั้งเป็นภาพพื้นหลัง ฉันใส่ไว้ในรายการเริ่มต้นแล้ว แต่ฉันจะเรียกใช้ทุก ๆ ครั้งเช่น 5 นาทีโดยอัตโนมัติได้อย่างไร

3
ฉันจะเพิ่มรายการที่กำหนดเองในเมนูบริบทใน Dolphin ใน KDE 5 ได้อย่างไร
ฉันไปรอบ ๆ แต่ดูเหมือนจะไม่พบบทเรียนหรือเอกสารประกอบที่สอดคล้องกันซึ่งอธิบายวิธีการทำสิ่งนี้ (ในกรณีของฉันใน Kubuntu 15.10) ฉันต้องการเพิ่มสคริปต์ที่กำหนดเองลงในเมนูบริบทใน Dolphin (a la nautilus-scriptsfor Nautilus) ด้วยเหตุผลบางอย่างเมื่อฉันทำตามคำแนะนำใด ๆ ที่ฉันพบฉันสามารถทำให้เมนูบริบทปรากฏขึ้นเมื่อคลิกขวาที่.desktopไฟล์ที่เกี่ยวข้องเท่านั้น ฉันจะแก้ปัญหานี้ได้อย่างไร

5
ทำให้สคริปต์ทุบตีปฏิบัติการได้โดยทางโปรแกรม
ฉันต้องสร้างสคริปต์ทุบตีเพื่อสร้างและติดตั้งไดรฟ์ ดังนั้นสองคำสั่งง่ายๆ ทั้ง "งาน" เมื่อป้อนที่บรรทัดคำสั่ง สคริปต์ถูกสร้างและดำเนินการทุกครั้งที่ผู้ใช้ทั่วไปลงชื่อเข้าใช้ดังนั้นฉันต้องการวิธีในการทำให้สคริปต์นี้ทำงานได้ในเวลานั้น จนถึงตอนนี้ฉันไม่สามารถทำงานได้ ตัวอย่างเช่นส่วนแรกmkdir /vvv/ggggไม่ได้ดำเนินการเพราะสคริปต์ไม่สามารถดำเนินการได้ (ฉันเดา) หวังว่ามันจะสมเหตุสมผล เป็นไปได้ไหม ความคิดใด ๆ เกี่ยวกับวิธีการทำงานนี้จะได้รับการชื่นชม อัปเดต : ขอบคุณสำหรับคำตอบของคุณ ฉันน่าจะเพิ่มข้อมูลเพิ่มเติมนอกเหนือจากที่ฉันเพิ่งรู้จักกับ Linux ฉันกำลังใช้แอปพลิเคชันเดสก์ทอปเสมือนโอเพ่นซอร์สที่เรียกว่า Ulteo แอปนี้ทำงานบน Ubuntu และมีการสนับสนุนน้อยมาก - นั่นเป็นสาเหตุที่ฉันมาที่นี่ โดยพื้นฐานแล้วฉันกำลังเรียนรู้ด้วยไฟ ดังนั้นจึงมีแอปพลิเคชันที่มีฟังก์ชั่นการจัดการสคริปต์เข้าสู่ระบบที่ฉันสามารถผูกสคริปต์กับผู้ใช้ สคริปต์ windows ที่เรียบง่ายพร้อมการใช้เน็ตทำงานได้ดี อย่างไรก็ตามเมื่อฉันพยายามใช้สคริปต์ทุบตี Linux ไม่มีอะไรเกิดขึ้น ฉันคิดว่าเพราะฉันจำเป็นต้องดำเนินการchmod +xกับสคริปต์ก่อนที่จะทำให้สคริปต์ที่ปฏิบัติการนี่คือเหตุผลที่มันล้มเหลว โดยวิธีการที่ Ulteo ทำงานในคุก chroot ฉันสร้างสคริปต์บันทึกแล้วไม่พบสคริปต์ ฉันค้นหาทั้งในและนอกคุก chroot ฉันชอบวิธีการโดย dan08 เพื่อให้มีการอ้างอิงสคริปต์เริ่มต้นสคริปต์อื่นที่ฉันสามารถค้นหาและทำให้ปฏิบัติการด้วยตนเอง ฉันจะเจอปัญหาเดียวกันหรือไม่? ข้อมูลเพิ่มเติมนี้ชี้แจงสถานการณ์หรือไม่? ขอบคุณล่วงหน้า. …

1
ค้นหาข้อความที่ระบุจากไฟล์และส่งบรรทัด (สคริปต์ Shell)
สมมติว่าฉันมีตัวแปร $ str1 str1="20140121-21:48:26|Joanne Frances|" สิ่งที่ฉันต้องการทำคือค้นหาส่วนนั้นในไฟล์ ไฟล์มีตัวอย่างเช่น: 20140121-21:48:26|Joanne Frances|Perez|9173046751.000000|Mar 31| 20140121-21:50:28|Nikko|Real|9065887272.000000|Mar 21| 20140121-22:22:53|Czarina|Revilla|9999999999.000000|Jan 21| ผลลัพธ์ควรเป็น: 20140121-21: 48: 26 | Joanne Frances | เปเรซ | 9173046751.000000 | 31 มีนาคม อัปเดต: ในที่สุดก็รู้ว่าสิ่งที่ heck เป็นปัญหาพยายามecho $str1และมันออกมา20140121|Adrian Perez|หมายความว่ามันไม่ได้จริงๆในไฟล์ Haaa! ฉันช่างเป็นระเบียบ! -_-

2
ยืนยันอัตโนมัติเมื่อรันสคริปต์ทุบตี?
ฉันกำลังทำงานกับสคริปต์ทุบตีง่าย ๆ ที่กำหนดค่าเซิร์ฟเวอร์ใหม่ตามที่ฉันต้องการ มันไม่มีอะไรพิเศษ แต่หวังว่าจะช่วยให้ฉันประหยัดเวลาได้มากในอนาคต ฉันจะป้องกันการแจ้งในลักษณะนี้ได้อย่างไร: You are about to add the following PPA to your system: Stable version of nginx. More info: https://launchpad.net/~nginx/+archive/stable Press [ENTER] to continue or ctrl-c to cancel adding it เมื่อเรียกใช้คำสั่งเช่นนี้จากสคริปต์: sudo add-apt-repository ppa:nginx/stable sudo apt-get update sudo apt-get -y install nginx มีธงยอมรับอัตโนมัติที่ฉันสามารถตั้งค่าหรืออะไรแบบนั้นได้ไหม
12 apt  bash  scripts  automation 

4
ตรวจสอบว่าเวอร์ชั่น Bash เป็น> = ระบุหมายเลขเวอร์ชั่นหรือไม่
ฉันต้องการทดสอบว่าหมายเลขเวอร์ชัน Bash คือ> = ถึงตัวเลขที่ระบุหรือไม่ เช่นฉันมี: $ bash --version GNU bash, version 4.3.48(1)-release (x86_64-pc-linux-gnu) Copyright (C) 2013 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html> This is free software; you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted …

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