我尝试在bash中使用lastpipe选项,但是当从交互式提示命令行运行时,似乎没有按预期工作。
phi@phiz:~$ shopt lastpipe
lastpipe on
phi@phiz:~$ echo $BASH_VERSION
4.3.11(1)-release
phi@phiz:~$ echo yo | read a ; echo "a='$a'"
a=''
所以我在$a中什么都没有得到,但是如果在子进程中运行,它会有些作用,尽管无用。我需要在顶级交互中使用它。
phi@phiz:~$ (echo yo | read a ; echo "a='$a'")
a='yo'
这种行为是否是预期的?我做了我的RTFM职责,无法确定这是有意还是意外。
我对bash很新,从其他shell过来后感到困惑。
提前感谢您的任何建议。
set +m
禁用作业控制。 - chepner