繰り返しスクリプトの実行:AはBを呼び出し、BはAを呼び出します。

繰り返しスクリプトの実行:AはBを呼び出し、BはAを呼び出します。

scriptA.sh変数が特定の値を仮定すると、scriptB.sh何かを実行してからaを呼び出すscriptA.sh別のスクリプトを実行する必要があるスクリプトがありますscriptB.sh

私は実行を計画しています。

ScriptA - ScriptB         
   |
   |
   _
            |
            _
   |
   |
   _
            |
            _

この方法で試しましたが、プロセスは終了しません。

ScriptA.sh
./scriptB.sh &
exit

ScriptB.sh
./scriptA.sh &
exit

同じですが、プロセスは閉じません。

ScriptA.sh
./scriptB.sh && exit

ScriptB.sh
./scriptA.sh && exit

どんな提案がありますか?

実際のスクリプト:

スクリプトA.sh:

#!/bin/bash
val=123
directory_path=`pwd`
script_name=$0
if [ $val -eq 123 ];then
  echo "call B and exit"
  ./scriptB.sh $directory_path $script_name && exit 0
fi

スクリプトB.sh:

#!/bin/bash
directory_path=$1
exec_command=$2
cd
cd $directory_path
echo "call A and exit"
$exec_command && exit 0

ベストアンサー1

修正する: 構造を維持するには、次の2つのファイルを作成できます。

スクリプトファイル

#!/bin/bash
./controller.sh a

スクリプトb.sh

#!/bin/bash
./controller.sh b

簡単にできるヒントは次のとおりです。

コントローラ.sh

#!/bin/bash
# run   ./controller.sh a   to run a/b
# run   ./controller.sh b   to run b/a
if [ "$1" == "a" ]; then
  ./ascript.sh      
  ./bscript.sh

elif [ "$1" == "b" ]; then
  ./bscript.sh
  ./ascript.sh
else
  echo "choose a or b ./controller.sh [a|b]"
  exit 255
fi
exit 0

ascript.sh

#!/bin/bash
echo "script a"
# add code here

スクリプトファイル

#!/bin/bash
echo "script b"
# add code here

おすすめ記事