我想改變一個全局變量的值。 當我正常執行這個功能時,它工作的很好。 但是,我不是在用發球臺執行它。 我需要tee才能在屏幕上和文件上輸出。在使用「tee」時更改函數內的全局變量?
爲什麼三通導致這種行爲? 有沒有辦法用Tee修改函數內的全局變量?
FCT_main()
{
MY_VAR=2
}
MY_VAR=1
echo "MY_VAR=$MY_VAR" # -> print 1.
FCT_main | tee file.out
echo "MY_VAR=$MY_VAR" # -> print 1, but I expect 2 !
echo "\n"
echo "MY_VAR=$MY_VAR" # -> print 1.
FCT_main
echo "MY_VAR=$MY_VAR" # -> print 2 as expected.
謝謝你的解釋。 我試過你的其他方式,但我得到一個語法錯誤: 'code./test.sh[10]:第10行的語法錯誤:('意外的' – Sephi
@Sephi我已經將整個代碼添加到答案。嘗試複製粘貼它,並執行。 – Antarus
好吧,我明白了,它在Linux上工作正常,但可悲的是我使用SunOS :( – Sephi