bash脚本中的变量subshesll

时间:2018-10-13 19:48:23

标签: bash variables root subshell

我试图以root身份运行命令并将输出捕获到变量中。但是,变量“ loopdev”返回为空。

sudo bash << "EOF"
whoami
loopdev=`losetup -f --show "${image}"`
echo "####" $loopdev "####"
EOF

此命令的正常输出如下所示

$ image=sdimage.img
$ sudo losetup -f --show "${image}"
/dev/loop0

2 个答案:

答案 0 :(得分:0)

我尝试了如下问题

test=12781278
sudo bash << "EOF"
whoami
loopdev=`echo Hi $test`
echo "####" $loopdev "####"
EOF

输出为

#### Hi  ####

对于您的问题,图像变量值未传递到您要启动的bash shell。

答案 1 :(得分:0)

解决方案是像这样传递image变量:

image=rpi_2.img
sudo image="${image}" bash << 'EOF'
whoami
loopdev=`losetup -f --show "${image}"`
echo "####" $loopdev "####"
EOF

输出:

root
#### /dev/loop0 ####