【问题标题】:Variables inside a bash script subshesllbash 脚本 subshesll 中的变量
【发布时间】:2018-10-13 19:48:23
【问题描述】:

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

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

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

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

【问题讨论】:

  • " losttup: : failed to setup loop device: Success"(没有创建循环设备,不知道为什么它说成功)
  • 你可以尝试在 bash 脚本中设置“image”变量值吗?如下 sudo bash losetup -f --show "${image}" echo "####" $loopdev "####" EOF

标签: bash variables root subshell


【解决方案1】:

我尝试了您的问题,如下所示

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

输出是

#### Hi  ####

对于您的问题,图像变量值没有传递给您正在启动的 bash shell。

【讨论】:

    【解决方案2】:

    解决方案是像这样传入图像变量:

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

    输出:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-11-04
      • 2016-10-28
      • 1970-01-01
      • 2016-01-01
      • 2019-02-17
      • 2014-03-04
      相关资源
      最近更新 更多