当我在命令提示符下使用 export 命令时,它按预期工作。但它在 shell 脚本中不起作用。
[root@server shantanu]# export myip=10
[root@server shantanu]# echo $myip
10
[root@server shantanu]# vi myip.sh
#!/bin/sh
export myipadd=10
[root@server shantanu]# sh -xv myip.sh
#!/bin/sh
export myipadd=10
+ export myipadd=10
+ myipadd=10
[root@server shantanu]# echo $myipadd
我希望下次运行同一个脚本时,该变量可用。换句话说,我正在寻找某种方法来记住变量值。
答案1
从命令行执行export
命令使环境变量仅在当前会话中生效。将其添加到您的 shell 启动文件中以永久生效。
例如,使用 bash:
echo "export myipadd=10" >> ~/.bash_profile (for only root)
echo "export myipadd=10" >> /etc/profile (for all users)
答案2
如果您需要在 shell 脚本中导出变量并使其可供其他脚本使用,则需要使用该source
命令。
$ cat test.sh
export MY_VAR="hello"
$ source test.sh
$ echo $MY_VAR
hello