bash 脚本 subshesll 中的变量
Variables inside a bash script subshesll
我正在尝试 运行 作为 root 命令并将输出捕获到一个变量中。然而,变量 "loopdev" 返回为空。
sudo bash << "EOF"
whoami
loopdev=`losetup -f --show "${image}"`
echo "####" $loopdev "####"
EOF
此命令的正常输出如下所示
$ image=sdimage.img
$ sudo losetup -f --show "${image}"
/dev/loop0
我试过你的问题如下
test=12781278
sudo bash << "EOF"
whoami
loopdev=`echo Hi $test`
echo "####" $loopdev "####"
EOF
输出为
#### Hi ####
对于您的问题,图像变量值未传递到您正在启动的 bash shell。
解决方案是像这样传入图像变量:
image=rpi_2.img
sudo image="${image}" bash << 'EOF'
whoami
loopdev=`losetup -f --show "${image}"`
echo "####" $loopdev "####"
EOF
输出:
root
#### /dev/loop0 ####
我正在尝试 运行 作为 root 命令并将输出捕获到一个变量中。然而,变量 "loopdev" 返回为空。
sudo bash << "EOF"
whoami
loopdev=`losetup -f --show "${image}"`
echo "####" $loopdev "####"
EOF
此命令的正常输出如下所示
$ image=sdimage.img
$ sudo losetup -f --show "${image}"
/dev/loop0
我试过你的问题如下
test=12781278
sudo bash << "EOF"
whoami
loopdev=`echo Hi $test`
echo "####" $loopdev "####"
EOF
输出为
#### Hi ####
对于您的问题,图像变量值未传递到您正在启动的 bash shell。
解决方案是像这样传入图像变量:
image=rpi_2.img
sudo image="${image}" bash << 'EOF'
whoami
loopdev=`losetup -f --show "${image}"`
echo "####" $loopdev "####"
EOF
输出:
root
#### /dev/loop0 ####