我有一个功能
foo_bar()
{
echo "foo_bar"
read -p "enter option" option
echo $option
}
option=$(foo_bar)
echo $option
返回
enter option
and then in one line
foo_bar [option]
我期待的是执行遵循我写的顺序.. 即喜欢
foo_bar
enter option
[option]
我如何在shell脚本中执行此操作
答案 0 :(得分:1)
之前添加回声:
option=$(foo_bar)
所以它变成了:
foo_bar()
{
echo "foo_bar"
read -p "enter option" option
echo $option
}
echo
option=$(foo_bar)
echo $option
答案 1 :(得分:1)
您正在变量foo_bar
中捕获option
的输出。该输出包括foo_bar echos的文本。 (也就是说,您将字符串foo_bar\n$option
分配给变量option
,并且echo正在用空格替换换行符)但是,read -p
将其提示输出到stderr。如果你想要" foo_bar"要打印到读取的同一位置打印其提示,请明确地这样做:
foo_bar()
{
echo "foo_bar" >&2
read -p "enter option" option
echo $option
}
option=$(foo_bar)
echo $option