Bash Shell脚本(分配给变量)不工作

Bash Shell脚本(分配给变量)不工作,bash,scripting,Bash,Scripting,我尝试了bash-x script\u 01.sh“file”,跟踪工作正常: #!/bin/bash if [ -f "$1" ] #parameter is file name, if i exists... then VARIABLE=`cat "$1"` #assign what's inside into VARIABLE fi 但问题是,当我回显$VARIABLE时,它是空的。你们有什么建议可以让它发挥作用吗?谢谢。变量是在运行脚本的进程中设置的,而不是在调用脚本的进程中设

我尝试了
bash-x script\u 01.sh“file”
,跟踪工作正常:

#!/bin/bash
if [ -f "$1" ] #parameter is file name, if i exists...
then
    VARIABLE=`cat "$1"` #assign what's inside into VARIABLE
fi

但问题是,当我回显$VARIABLE时,它是空的。你们有什么建议可以让它发挥作用吗?谢谢。

变量是在运行脚本的进程中设置的,而不是在调用脚本的进程中设置的。如果要在当前环境中进行设置,则需要对文件进行源设置

+ '[' -f file ']'
++ cat file
+ VARIABLE='Wednesday, November  4, 2015 04:45:47 PM CET'

它对我有用。我在脚本末尾添加了
echo$VARIABLE
,并将其保存在script.sh下。如果我运行
bash script.sh script.sh
,它会像预期的那样回显脚本的内容。是的,当我在脚本末尾添加回显时,它会正常工作。但在剧本之外就不是了。我猜我正在运行的是另一个进程。如果我理解正确,有两个bash,bash1:我现在使用的那个,bash2:运行脚本的那个。所以只有在bash2中变量才会被设置为
cat file
,而在bash1中它还不会是任何东西?我不明白第二条路。我确实使用了“file”作为参数,对吗?对;变量对于运行它们的脚本/shell来说是“本地”的。因此,尽管
变量
脚本\u 01.sh
的运行中正确设置,但一旦脚本退出,它就会消失。因此,为了使它退出脚本,我必须添加“导出变量”?否,
导出
是一个单向过程,用于将信息从父级传递给其子级。子级无法(按设计)影响其父级的环境,这就是为什么必须像我所展示的那样为文件提供源代码,以便代码在相同的过程中执行。
. script_01.sh "file"