我正在尝试使用超级用户权限中的read
命令读取输入:
sudo read p
返回错误:
sudo: read: command not found
以下内容:
sudo -s <<EOF
read p
EOF
read
正在被跳过。
那么,如何在shell脚本的根会话中使用read
,还是有其他选择?关于上述原因不起作用的一点见解将不胜感激。
修改
我希望输入存储在变量p
中以便稍后使用。基本上我想在heredoc中做到这一点,即p
应该可以在heredoc中使用,在heredoc之外它无关紧要。
答案 0 :(得分:3)
这可能有所帮助:
$ my_tty=`tty`
$ sudo -s <<EOF
read -p "Some prompt: " p < $my_tty
echo "You supplied '\$p'"... #use $p
EOF
#Output
Some prompt: somevalue
You supplied 'somevalue'...
但是,正如我已经说过的,$p
之外的sudo
值不可见。
您可能更喜欢使用它:
$ read -p "Some prompt: " p
$ sudo -s <<EOF
echo "You supplied '$p'"... #use $p
EOF
答案 1 :(得分:2)
sudo -s read p
你不能将sudo用于shell内置命令,因为sudo没有创建shell