我应该将 ENTER 键值作为 shell 输入,以避免 shell 等待用户输入。
echo 'enter'
read FRUIT
case "$FRUIT" in
"apple") echo "Apple pie is quite tasty."
;;
"banana") echo "I like banana nut bread."
;;
"kiwi") echo "New Zealand is famous for kiwi."
;;
esac
export TEST6=TEST
我了解到“echo”隐式具有 ENTER 值,因此尝试在命令下运行以完成我的要求。
echo | source ~/.bash_profile
如我所料,我可以看到操作系统提示符,而不是看到 Shell 等待用户输入。 但是,我注意到导出 TEST6 变量的最后一行没有导出。我的意思是我找不到变量 TEST6 的值。
你能告诉我我错过了什么吗?
最佳答案
该值正在管道运行的子 shell 中导出。请改用输入重定向。
source ~/.bash_profile <<< ""
可以使用任何字符串,因为您似乎并不关心实际使用的值,但是空字符串相当于 echo
没有参数产生。 (这里的所有字符串都隐含地以换行符结尾。)
如果你的 shell 不支持 <<<
,您可以改用 POSIX 标准的此处文档。
. ~/some_file <<EOF
EOF
关于linux - 在 Linux bash 中模拟 ENTER 键并一起导出另一个变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39877368/