在腳本中執行時保持環境

在腳本中執行時保持環境

我有一個 bash 腳本,應該執行許多命令。這些命令在終端機中輸入時工作正常,但當我嘗試從腳本內部執行它們時,它們不起作用,所以我認為這是特定於環境的。

在我的腳本中有

exec "$cmd"

它不起作用,而如果我複製 $cmd 的內容並貼上到終端中,它就可以正常工作。

執行腳本時如何保持目前環境?或者你有其他想法嗎?

答案1

將指令放入數組中。

arr=(foo bar baz quux)
exec "${arr[@]}"

答案2

set -o allexport在 bash 腳本的頂部鍵入。這應該會自動導出您定義的所有變數。 (請注意,這被認為是不好的風格;更好的辦法是導出正確的變數)。

答案3

如果所有命令都應從同一目錄運行,您可以使用

cd /d $Location

在腳本的開頭設定要執行的命令的位置。

cd-這是更改目錄指令。 /d——此開關使 cd 同時更改驅動器和目錄。

如果您希望從 D:\scripts 執行命令而不帶 /d,您需要

D:
cd \scripts

但使用上面的命令你可以在一行中完成

cd /d D:\scripts

-再次編輯-

我很抱歉,它清楚地寫著 BASH,但由於某種原因我在 BATCH 上閱讀了它。以後會更加小心。

相關內容