模拟ENTER键并在Linux bash中一起导出另一个变量

时间:2016-10-05 14:54:41

标签: linux bash

我应该将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的值。

你能让我知道我错过了什么吗?

1 个答案:

答案 0 :(得分:1)

该值正在由管道运行的子shell中导出。改为使用输入重定向。

source ~/.bash_profile <<< ""

可以使用任何字符串,因为您似乎并不关心实际使用的值,但空字符串相当于没有参数的echo生成。 (所有这里的字符串都隐含地以换行符结尾。)

如果你的shell不支持<<<,你可以在这里使用POSIX标准文件。

. ~/some_file <<EOF
EOF