ぱそくま ろご
Linux > シェル > bashの記号(不等号)

bashの記号(不等号)

>, &>, &>, >>, < - リダイレクト

リダイレクト。出力リダイレクト詳細はリダイレクトのページを参照ください。

書式:コマンド > ファイル名 or ファイルディスクプリタ

リダイレクトの例

* 標準エラーの出力先を標準出力に切替え
[paso ~]ls 2>&1
* 追加モードで出力先をファイルに切替え  
[paso ~]ls .. >> file_list.txt
* 標準エラーと標準出力の出力先をファイルに切替え(Bash 4以上)  
[paso ~]apt-get install lftp &> install.log


<< - ヒアドキュメント

[paso ~]lftp <<EOF
>open -u paso,pass 192.168.11.1
>cd bakcup
>mirror
>EOF

<<< - ヒアストリング

[paso ~]cat <<< "
> $PWD"
/home/paso

[, ] - 文字列比較

[](角かっこ)内は文字列比較演算になります。

num1=-10
num2=-20
if [[ $num1 \< $num2 ]]; then
   echo "asciiでは$num1は$num2より小さい。"
else
   echo "asciiでは$num1は$num2より大きい。"
fi

(, ) - 数値比較

()(丸かっこ内)は数値(整数のみ)比較演算になります。

num1=-10
num2=10
if (( $num1 \< $num2 )); then
   echo "$num1は$num2より小さい。"
else
   echo "$num1は$num2より大きい。"
fi

<(コマンド), >(コマンド) - プロセス置換

<(), >()はプロセス置換といって、コマンドの結果をファイルのように扱えます。 名前からは、かなり想像しづらいですが、例を見たほうがピンとくると思います。

プロセス置換の例

[paso ~]diff <(cat 1st.txt) <(cat 2nd.txt)
1,3c1,3
> 1stの1行目
> 1stの2行目
> 1stの3行目
---
< 2ndの1行目
< 2ndの2行目
< 2ndの3行目