Wenn ich einen Linux "at" -Befehl ausführe, wird das Shell-Skript des Benutzers nicht ausgeführt. Beispielsweise schreibe ich den folgenden Code in mein Skript
#!/bin/csh #or #!/bin/bash
echo "Now will excute a shell script"
dir=`pwd`
my_path=`/home/Jim`
Wenn ich das Skript in der Befehlszeile ausführe, funktioniert es einwandfrei.
Während ich das mit dem Befehl "at" ausführe, wird die folgende Meldung angezeigt
Nun wird ein Shell-Skript ausgeführt dir = / home / Jim / Desktop: Befehl nicht gefunden my_path = "/ home / Jim": Befehl nicht gefunden
Ich habe viele Male versucht, kann aber jetzt noch arbeiten
Bitte jeder kann mir helfen, dieses Problem zu beheben. Vielen Dank und Grüße!
linux
shell-script
at
Liuwei.Shi
quelle
quelle
Antworten:
Wenn Sie Backticks in der Shell oder in einem Skript verwenden, wird versucht, den Inhalt so auszuführen, als wäre es ein Programm.
Diese Zeile versucht, das genannte Programm auszuführen
/home/Jim
, aber ich glaube, nach dem, was ich aus Ihrer Frage herausholen kann, ist dies Ihr Ausgangsverzeichnis, kein ausführbares Programm. Sie müssen also mit ziemlicher Sicherheit die/home/Jim
Anführungszeichen und nicht die Backticks (`) setzen.quelle
/home/Jim
doppelte Anführungszeichen und es scheint, was auch immer diesat
ist, läuftdir=/home/Jim/Desktop
undmy_path="/home/Jim"
als Befehleat
ganzen Zeilen werden als Befehle behandelt, als obdir=/home/Jim/Desktop
undmy_path="/home/Jim"
als Programme.at
in vielen Distributionen standardmäßig der Fall. Ich ging davon aus, dass das OP nur so etwas machtecho "scriptpath" | at {time}
, aber vielleicht auch nicht.