Próbowałem użyć at
z mojego skryptu, który wyświetla:
ostrzeżenie: polecenia będą wykonywane za pomocą / bin / sh
Jak miałbym użyć innej powłoki, gdybym chciał?
Pod Linuksem at
zawsze ostrzega cię, że wykona określone polecenia za pomocą /bin/sh
twojej ulubionej powłoki. Nie można ukryć tej wiadomości, jest ona zakodowana na stałe w kodzie źródłowym.
Przekazywane polecenie jest interpretowane przez /bin/sh
. To polecenie może być ścieżką do skryptu, jeśli chcesz; następnie /bin/sh
wykona program skryptowy, powodując uruchomienie interpretera skryptu i interpretację skryptu. Język skryptu jest całkowicie niezależny od programu, który go uruchamia. Jeśli więc chcesz na przykład wykonać skrypt bash (tj. Skrypt rozpoczynający się od #!/bin/bash
), po prostu podaj ścieżkę do skryptu at
i zignoruj nieistotny komunikat.
możesz osiągnąć uruchomienie go z innej powłoki zmieniając shebang skryptu . Niektóre typowe linie 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
Aby uruchomić skrypt w danym momencie, sugeruję dodanie cronjob
Przykład:
Poniższy wiersz sprawia, że program użytkownika test.pl - pozornie skrypt Perla - jest uruchamiany co dwie godziny, o północy, 2 nad ranem, 4 nad ranem, 6 nad ranem, 8 nad ranem i tak dalej:
0 * / 2 * * * /home/username/test.pl
#!/usr/bin/perl
jest już shebang w moim skrypcie, ale dostaję ostrzeżenie#!/bin/sh
...?