2017-07-17 8 views
0

Ich habe a.sh und b.sh. Ich habe Shell von Bash zu Ksh geändert. Jetzt wird b.sh nicht aufgerufen.Shell-Datei wird nicht von anderen Shell-Datei

a.sh

`#!/bin/ksh 
source /home/ec2-user/env 
abc_job() { 
    nohup abc >> $HOME/a.log 2>&1 </dev/null & 
} 
abc_jbo() >> $HOME/a.log 
exit 0` 

ABC ist der Binärdatei von c, die b.sh

b.sh

`#!/bin/ksh 
    echo "completed b.sh job >> $HOME/b.log 
exit` 
+0

Warum verwenden Sie 'ksh'? Ziehen Sie in Betracht, zu [zsh] (http://zsh.org/) zu wechseln, oder, wenn die Portabilität Ihrer Shell-Skripte wichtig ist, kodieren Sie sie in POSIX 'sh' –

Antwort

1

CSH ruft eingebauter Befehl 'sou rce 'hat das ksh-Äquivalent'. ', in Ihrem Fall:

./home/ec2-user/env

Wenn die Ausführung von/home/ec2-user/env obligatorisch ist, möchten Sie vielleicht defensiver sein und prüfen, ob sie vorhanden und ausführbar ist und erfolgreich ausgeführt wird.

Verwandte Themen