shell 为变量赋值 命令的输出结果赋值
记录一下 第一次写这种博客 哈哈
**最近一直在学shell昨天碰到个问题
文件111.sh 中有一个token**
[root@controller sh]# cat 111.sh
2910d71df692fd8d39615421
想要将这个token 赋值给环境变量OS_TOKEN
左边的命令应该有标准输出 | 右边的命令应该接受标准输入
左边的命令应该有标准输出 > 右边只能是文件
左边的命令应该需要标准输入 < 右边只能是文件
如果使用管道或重定向的话可以看一下
[root@controller sh]# cat 111.sh | export OS_TOKEN
[root@controller sh]# export | grep OS_TOKEN
declare -x OS_TOKEN=""
[root@controller sh]# export OS_TOKEN <111.sh
[root@controller sh]# export | grep OS_TOKEN
declare -x OS_TOKEN=""
可以看到都没有成功
那么如何能把这个值赋给OS_TOKEN 看你的键盘 esc 键下面有个反引号,在Linux中起着命令替换的作用。命令替换是指shell能够将一个命令的标准输出插在一个命令行中任何位置,简单说就是引用命令的执行结果。
[root@controller sh]# export OS_TOKEN=`cat 111.sh`
[root@controller sh]# export | grep OS_TOKEN
declare -x OS_TOKEN="2910d71df692fd8d39615421"
同样也可以为命令的输出结果赋值
想到办法了感觉好简单