如何在Bash command substitution結束時壓制或刪除換行符?如何在Bash命令替換結束時禁止或刪除換行符?
例如,我有
echo "$(python --version) and more text"
我如何才能
Python 2.7.10 and more text
,而不是
Python 2.7.10
and more text
如何在Bash command substitution結束時壓制或刪除換行符?如何在Bash命令替換結束時禁止或刪除換行符?
例如,我有
echo "$(python --version) and more text"
我如何才能
Python 2.7.10 and more text
,而不是
Python 2.7.10
and more text
bash command substitution syntax already removes trailing newlines。所有你需要做的是重定向到stdout:
$ echo "$(python --version) and more text"
Python 2.7.8
and more text
$ echo "$(python --version 2>&1) and more text"
Python 2.7.8 and more text
這裏的事情是,python --version
輸出到stderr,而"and more text"
到stdout 。
所以,你必須做的唯一的事情就是用2 >&1
重定向錯誤輸出到標準輸入:
printf "%s and more text" "$(python --version 2>&1)"
或
$ echo "$(python --version 2>&1) and more text"
Python 2.7.10 and more text
注意,最初我被輸送至tr -d '\n'
using |&
:
echo "$(python --version |& tr -d '\n') and more text"
是的,我的Python版本比你的舊。好傷心...... –
啊,我明白了。我根本沒有捕獲它。沒有值返回,但輸出生成(到標準輸出?),對不對? – orome
並且:'brew install python'。 – orome