Câu trả lời:
Trong Linux, at
luôn cảnh báo bạn rằng nó sẽ thực thi các lệnh được chỉ định /bin/sh
, thay vì shell yêu thích của bạn. Bạn không thể chặn thông báo này, nó được mã hóa cứng trong mã nguồn.
Lệnh bạn vượt qua được giải thích bởi /bin/sh
. Lệnh này có thể là đường dẫn đến một kịch bản nếu bạn muốn; sau đó /bin/sh
sẽ thực thi chương trình tập lệnh, khiến trình thông dịch của tập lệnh được khởi chạy và diễn giải tập lệnh. Ngôn ngữ của tập lệnh hoàn toàn độc lập với chương trình khởi động nó. Vì vậy, nếu ví dụ bạn muốn thực thi tập lệnh bash (tức là tập lệnh bắt đầu bằng #!/bin/bash
), chỉ cần chuyển đường dẫn đến tập lệnh đến at
và bỏ qua thông báo không liên quan.
bạn có thể đạt được việc chạy nó từ một trình bao khác thay đổi tập lệnh shebang . Một số dòng shebang điển hình:
#!/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
Để chạy tập lệnh vào những thời điểm nhất định, tôi khuyên bạn nên thêm một cronjob
Thí dụ:
Dòng sau đây làm cho chương trình người dùng test.pl có vẻ như là một tập lệnh Perl, cứ sau hai giờ, vào lúc nửa đêm, 2 giờ sáng, 4 giờ sáng, 6 giờ sáng, 8 giờ sáng, v.v.
0 * / 2 * * * /home/username/test.pl
#!/bin/sh
....?
#!/usr/bin/perl
đã là shebang trong kịch bản của tôi nhưng tôi nhận được cảnh báo