質問: bash変数から空白を削除する方法 このコードを含むシェルスクリプトがあります。var=`hg st -r "$path"` if [ -n "$var" ]; then echo $var fi hg stは常に少なくとも1つの改行文字を出力するため、条件付きコードは常に実行されます。 $varから空白を取り除く簡単な方法はありますか( _ php _ のtrim()のように)。 または この問題に対処する標準的な方法はありますか? sed または _ awk _ を使用できますが、この問題にはもっと優雅な解決策があると思います。
回答: pythonには、phpのstrip()と同じように機能するtrim()という関数があります。そのため、これを理解しやすいユーティリティを作成するために、少しインラインのpythonを実行するだけで済みます。alias trim='python -c "import sys; sys.stdout.write(sys.stdin.read().strip())"' これは先頭と末尾の空白(改行を含む)を削除します。$ x=`echo -e "\n\t \n" | trim` $ if [ -z "$x" ]; then echo hi; fi hi