繁体   English   中英

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

[英]Simulating ENTER key and export another variable together in 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的值。

你能让我知道我在想什么吗?

该值将在管道运行的子外壳中导出。 请改用输入重定向。

source ~/.bash_profile <<< ""

可以使用任何字符串,因为您似乎并不关心所使用的实际值,但是空字符串等效于不带参数的echo产生的内容。 (此处所有字符串隐式以换行符结尾。)

如果您的外壳不支持<<< ,则可以改用POSIX标准的here文档。

. ~/some_file <<EOF
EOF

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM