ฉันพยายามที่จะใช้atจากภายในสคริปต์ของฉันและมันพิมพ์:
คำเตือน: คำสั่งจะถูกดำเนินการโดยใช้ / bin / sh
ฉันจะใช้เปลือกที่แตกต่างกันได้อย่างไรถ้าฉันต้องการ?
ฉันพยายามที่จะใช้atจากภายในสคริปต์ของฉันและมันพิมพ์:
คำเตือน: คำสั่งจะถูกดำเนินการโดยใช้ / bin / sh
ฉันจะใช้เปลือกที่แตกต่างกันได้อย่างไรถ้าฉันต้องการ?
คำตอบ:
ภายใต้ Linux atเตือนคุณเสมอว่าจะดำเนินการคำสั่งที่ระบุด้วย/bin/shแทนที่จะเป็นเชลล์ที่คุณโปรดปราน คุณไม่สามารถระงับข้อความนี้มันเป็นรหัสยากในรหัสที่มา
/bin/shคำสั่งที่คุณผ่านการตีความ คำสั่งนี้สามารถเป็นพา ธ ไปยังสคริปต์ได้หากคุณต้องการ จากนั้น/bin/shจะดำเนินการโปรแกรมสคริปต์ทำให้ตัวแปลสคริปต์เปิดใช้งานและตีความสคริปต์ ภาษาของสคริปต์นั้นไม่ขึ้นอยู่กับโปรแกรมที่เริ่มทำงาน ดังนั้นถ้าเช่นคุณต้องการรันสคริปต์ทุบตี (เช่นสคริปต์ที่ขึ้นต้นด้วย#!/bin/bash) เพียงแค่ผ่านเส้นทางไปยังสคริปต์ไปยังatและละเว้นข้อความที่ไม่เกี่ยวข้อง
คุณสามารถบรรลุการทำงานได้จากเปลือกแตกต่างกันเปลี่ยนสคริปต์shebang บางเส้น Shebang ทั่วไป:
#!/bin/sh — Execute the file using sh, the Bourne shell, or a compatible shell #!/bin/csh -f — Execute the file using csh, the C shell, #!/usr/bin/perl -T — Execute using Perl with the option for taint checks #!/usr/bin/php — Execute the file using the PHP command line interpreter #!/usr/bin/python -O — Execute using Python with optimizations to code #!/usr/bin/ruby — Execute using Ruby
หากต้องการเรียกใช้สคริปต์ตามเวลาที่กำหนดฉันขอแนะนำให้คุณเพิ่มcronjob
ตัวอย่าง:
บรรทัดต่อไปนี้ทำให้โปรแกรมผู้ใช้ test.pl ซึ่งเป็นสคริปต์ Perl ทำงานทุกสองชั่วโมงในเวลาเที่ยงคืน, 2am, 4am, 6am, 8am และอื่น ๆ :
0 * / 2 * * * /home/username/test.pl
#!/bin/sh....
#!/usr/bin/perlเป็น Shebang ในสคริปต์ของฉันอยู่แล้ว แต่ฉันได้รับคำเตือน