2017-01-13 10 views
1

私はシェルBを呼び出すシェルAをnohupを使用しています。サブスクリプトで実行されるスクリプトは、呼び出しスクリプトと同じシェルを実行していません

SHELL A:

echo "\r\n OS1 : $BASH \r\n" 
echo "\r\n OS2 : $SHELL \r\n" 

$scriptB="B.sh" 

(
    nohup sh $scriptB $* >> test.log 2>&1 
    echo process finalized 
    exit 
) 

SHELL B:

echo "\r\n OS1 : $BASH \r\n" 
echo "\r\n OS2 : $SHELL \r\n" 

シェルAIにおいてエコー結果取得:

:シェルBIにおいて

OS1 : /usr/bin/bash 
OS2 : /usr/bin/sh 

をエコー結果を得ます

OS1 : 
OS2 : /usr/bin/sh 

コールでバッシュが空になっているのはなぜですか?下付き文字の中でbashをどのように使い続けることができますか?これは私にbashで利用可能ないくつかのコマンドで構文エラーの原因となっていないが、

これを試してみてくださいSH

+0

[シェバング?](https://en.wikipedia.org/wiki/Shebang_(UNIX)) –

+0

'$ scriptB = B.sh (nohupをSH $ scriptB $ * >> test.log 2>&1 エコープロセスが終了しました 終了) '少し書式を変更できますか? – Inian

+0

'$ scriptB = B.sh'は誤った構文です – Inian

答えて

0

です:

ファイルA.sh

echo "\r\n OS1 : $BASH \r\n" 
echo "\r\n OS2 : $SHELL \r\n" 

(
    nohup sh ./B.sh $* >> test.log 2>&1 
    echo process finalized 
    exit 
) 

とファイルを保ちますBはそのままで、両方に対して同じ出力を出力します。

関連する問題