小编use*_*421的帖子

为什么更改脚本中的变量不会在脚本外更改它?

假设我export是终端的变量。之后,我调用一个脚本,将该变量更改为其他内容。但是当我返回终端和echo变量时,它仍然是它的原始值。

我可以做,如果我要像改变的变量和外部可见的脚本,不仅有什么脚本中。这是我想说的一个例子:

ares@ares-HP-ProBook-4530s:~$ export package=tree
ares@ares-HP-ProBook-4530s:~$ cat script3.sh 

#! /bin/bash
#set -x
echo $package
apt-cache show $1 | head -1
if [ $? -eq 0 ]; then
    package=1
else
    package=0
fi
echo $package
Run Code Online (Sandbox Code Playgroud)

运行脚本时的输出

ares@ares-HP-ProBook-4530s:~$ ./script3.sh gnome-terminal
tree
Package: gnome-terminal
1
ares@ares-HP-ProBook-4530s:~$ echo $package
tree
ares@ares-HP-ProBook-4530s:~$ 
Run Code Online (Sandbox Code Playgroud)

command-line bash environment-variables

6
推荐指数
1
解决办法
211
查看次数

标签 统计

bash ×1

command-line ×1

environment-variables ×1