我有這兩個腳本,configScript.sh
和genScript.sh
。第一個按我想要的方式工作。它將正確的值添加到options.sh
和echo
正確的消息中。但是,我想要genScript.sh
接受options.sh
中的當前參數並輸出正確的echo
。因爲它現在是我運行genScript.sh
它返回null
,我不明白爲什麼。Bash沒有按預期採購代碼
#!/bin/bash -x
#configScript.sh
func()
{
echo "
Choose
1 - Option 1
2 - Option 2
"
echo -n " Enter selection: "
read select
case $select in
1)
echo " Option 1 chosen"
. ./genScript.sh one
cat <<EOF>options.sh
OPTION=$OPTION
EOF
;;
2)
echo " Option 2 chosen"
. ./genScript.sh two
cat <<EOF>options.sh
OPTION=$OPTION
EOF
;;
esac
}
func
#!/bin/bash -x
#genScript.sh
. options.sh
OPTION=$1
func2()
{
if [ "$OPTION" == one ] ; then
echo "Option one"
elif [ "$OPTION" == two ] ; then
echo "Option two"
else
echo "null"
fi
}
func2
我設法genScript.sh
通過去除OPTION=$1
工作,我想要的方式。當我這樣做genScript.sh
將接受options.sh
內的值,並將輸出正確的echo
。但當我刪除OPTION=$1
configScript.sh
停止工作,因爲它應該不更新options.sh
一個新的價值了。
您是否嘗試過在'genScript.sh'中回顯'$ 1'?我可能會在引號中加上'one'和'two' ... – John3136
當我echo $ 1時,它不會返回任何東西,但我不知道如何讓它返回'options.sh中的值' – Benji