通过打开 gnome 终端执行脚本后无法打印用户输入

Unable to print user input after executing the script by opening the gnome-terminal

我正在尝试制作在双击时在终端上执行的脚本,并且应该要求用户输入。要执行脚本,请打开 gnome 终端,它将执行进一步的脚本。在 RESP 中接受用户输入后,它无法打印传递的值 (y/n)。带有 nautilus 的 Gnome 终端。

gnome-terminal -- bash -c "read -p 'Include log?(y/n)' RESP
echo '$RESP'
    if[ '$RESP' = 'y' ]; then
       //logic for yes
    else
       //logic for no
    fi; 
exec bash"

echo $RESP 没有打印任何东西?

脚本字符串中的 " 使变量为空(未定义的变量扩展为空)。它使回声为空。我用 ' 交换了 ",它工作正常。

gnome-terminal -- bash -c 'read -p "Include log?(y/n)" RESP
                                     echo "$RESP"; sleep 10
                                         if[ "$RESP" = "y" ]; then
                                            echo YES
                                         else
                                            echo NO
                                         fi; 
                                     exec bash'

试试这个

bash -c "read -p 'Include log?(y/n)' RESP
echo $RESP
if [ $RESP = 'y' ]; then
  echo y
else
  echo n
fi"

您需要对变量的 $ 进行转义,而不是将其放入 '