web-dev-qa-db-ja.com

単一行の場合はbash

Bashスクリプト内の条件が単一行で記述される方法を知りたいのですが。

例えば、どうやってこれを一行で書いて、それを次の行に書くのでしょうか。

if [ -f "/usr/bin/wine" ]; then
    export WINEARCH=win32
fi

これは、私の.bashrcにかなりの数のエイリアスがあり、複数のシステムに同じ.bashrc(同期済み)があるためですが、各システムにすべてのエイリアスが必要なわけではありません。私はそれらのほとんどをifステートメントの中に入れました、そして今それはすべてき​​れいに動作しています、しかしそれらはたくさんのスペースをとります、それぞれ3行プラスそれらの間の空白行

私は環境変数にもこの手法を使用します。

12

あなたはそのように書くでしょう:

if [ -f "/usr/bin/wine" ]; then export WINEARCH=win32; fi

これも書くことができることに注意してください(@glennjackmanによって示唆されるように):

[ -f "/usr/bin/wine" ] && export WINEARCH=win32
24
dr01

また、複合コマンドを入力するだけで、else elseコマンドを入力してEnterキーを押し、実行後に上矢印キーを押すだけで済みます。コマンドラインはもちろん最後にタイプされたコマンドを繰り返すでしょう、しかしこの場合それはあなたが必要とするようにそれをすべて一行に置きます。それはカンニング方法ですが、それは効果的です。

2
Alan