簡體   English   中英

導出在Shell腳本中不起作用,但通過CLI可以

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM