当我在 bash shell 中运行“set”命令时,我看到一个变量有一个值。但是,当我在 bash 脚本中运行“set”命令时,该变量不存在。为什么?我怎样才能做到这一点?
AxOS(7iq1) root:/mnt/ax/scratch/roshi# set
--snip--
SERIAL_NUMBER=7iq1
--snip--
AxOS(7iq1) root:/mnt/ax/scratch/roshi#
我的 shell 脚本 tmp.sh 包含
#!/bin/bash
svcid=`set | grep ^SERIAL_NUMBER | awk '{ split($1,a,"=");print a[2] }'`
echo ${svcid}
如果我按如下方式执行脚本,则没有输出
AxOS(7iq1) root:/mnt/ax/scratch/roshi# ./tmp.sh
AxOS(7iq1) root:/mnt/ax/scratch/roshi#
如果我执行脚本(首先由 Doon 建议)
AxOS(7iq1) root:/mnt/ax/scratch/roshi# . ./tmp.sh
7iq1
AxOS(7iq1) root:/mnt/ax/scratch/roshi#