[英]export doesn't work in shell script but does via CLI
我在以下文件-test.sh-中:
#!/bin/sh
export ASDF=test
我先執行chmod +x test.sh
,然后執行./test.sh
,最后echo $ASDF
./test.sh
和...什么都沒有。 好像沒有設置$ ASDF。 但是,如果我通過CLI而不是Shell腳本來執行此操作,則可以正常工作,並且已定義$ ASDF。
Shell腳本為什么不起作用?
這是因為:
./test.sh
將創建一個子外殼,並在子外殼中設置env變量。 子外殼退出后,該變量在父外殼中將不可用。
使用以下形式來避免分叉子外殼,並在當前外殼本身中執行test.sh
:
. ./test.sh
要么:
source ./test.sh
現在,變量ASDF
也將在當前Shell中可用。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.