私が使用したLinuxコマンドのecho-テキストの表示、情報の印刷
私が使用したLinuxコマンドのecho-テキストの表示、情報の印刷
このリンク:http://codingstandards.iteye.com/blog/786101 (転載は出典を明記してください)
用途の説明
echoコマンドは情報を印刷するために使用され、最も一般的なコマンドです.コマンドラインで環境変数の値を印刷するためによく使用され、現在の環境で指定した環境変数が設定されているかどうかを決定します.shellスクリプトでは、情報の印刷やデバッガのヘルプによく使用されます.
共通パラメータ
-nメッセージを印刷してから改行しない.
-eは文字列をエスケープします.
使用例
例1現在のPATH設定を印刷する
[root@jfht ~]# echo $PATH /usr/kerberos/sbin:/usr/kerberos/bin:/usr/apache/apache-ant-1.7.1/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin [root@jfht ~]#
例2現在のLANG設定を印刷する
[root@jfht ~]# echo $LANG zh_CN.GB18030 [root@jfht ~]#
ネット上ではLinuxの下でデフォルト言語を中国語に変更することをよく聞かれますが、私の一般的なやり方は
/etc/profileの末尾に
export LANG=zh_CN.GB18030
そして再ログインすればいいです.しかし、より低いバージョンのLinuxでは、通常、一般的なサービスコマンドなど、いくつかのコマンドの出力で文字化けしが発生します.
例3印刷後改行しない
[root@jfht ~]# echo -n "Please input your name: "; read name; echo "Your name is $name" Please input your name: coding Your name is coding [root@jfht ~]#
ここでは-nパラメータを使用して、情報を出力した後に自動的に改行しないようにします.
例4出力情報のエスケープ、例えば出力改行
[root@jfht ~]# echo "helloworld" helloworld [root@jfht ~]# echo -e "helloworld" hello world [root@jfht ~]# echo 'helloworld' helloworld [root@jfht ~]# echo -e 'helloworld' hello world [root@jfht ~]# echo hello; echo world hello world [root@jfht ~]#
次のエスケープ文字を使用できます.
a警告を発する;b前の文字を削除する.c最後に改行記号を付けない;f改行するがカーソルは元の位置にとどまる.行の先頭にカーソルを移動します.rカーソルは行の先頭に移動しますが、改行しません.t tabを挿入する;vはfと同じです;\挿入文字;nnはnnn(8進法)で表されるASCII文字を挿入する.
[root@jfht ~]# echo "hello\fworld" hello\fworld [root@jfht ~]# echo -e "hello\fworld" hello world [root@jfht ~]# echo "hello\vworld" hello\vworld [root@jfht ~]# echo -e "hello\vworld" hello world [root@jfht ~]#
例5標準エラー出力への出力
スクリプトを作成する場合、パイプを使用して前のコマンドの出力を後のコマンドの入力として使用することがよくあります.デバッグ情報を印刷するが、後のコマンドに干渉しない場合は、次のようにデバッグ情報を標準エラー出力に出力できます.
[root@jfht ~]# echo hello >&2 hello [root@jfht ~]#
次は、このテクニックを適用したスクリプトクリップです.
問題を考える
1.出力する情報を一重引用符、二重引用符、および引用符に入れない違いは何ですか?
2.カラー文字をどのように出力しますか(lsの時の効果のようです)?
関連資料
【1】飛諾網linux echoの使い方
【2】360doc linuxコマンドecho(転載)
は、私が使ったLinuxコマンドシリーズの総ディレクトリを返します.
このリンク:http://codingstandards.iteye.com/blog/786101 (転載は出典を明記してください)
用途の説明
echoコマンドは情報を印刷するために使用され、最も一般的なコマンドです.コマンドラインで環境変数の値を印刷するためによく使用され、現在の環境で指定した環境変数が設定されているかどうかを決定します.shellスクリプトでは、情報の印刷やデバッガのヘルプによく使用されます.
共通パラメータ
-nメッセージを印刷してから改行しない.
-eは文字列をエスケープします.
使用例
例1現在のPATH設定を印刷する
[root@jfht ~]# echo $PATH /usr/kerberos/sbin:/usr/kerberos/bin:/usr/apache/apache-ant-1.7.1/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin [root@jfht ~]#
例2現在のLANG設定を印刷する
[root@jfht ~]# echo $LANG zh_CN.GB18030 [root@jfht ~]#
ネット上ではLinuxの下でデフォルト言語を中国語に変更することをよく聞かれますが、私の一般的なやり方は
/etc/profileの末尾に
export LANG=zh_CN.GB18030
そして再ログインすればいいです.しかし、より低いバージョンのLinuxでは、通常、一般的なサービスコマンドなど、いくつかのコマンドの出力で文字化けしが発生します.
例3印刷後改行しない
[root@jfht ~]# echo -n "Please input your name: "; read name; echo "Your name is $name" Please input your name: coding Your name is coding [root@jfht ~]#
ここでは-nパラメータを使用して、情報を出力した後に自動的に改行しないようにします.
例4出力情報のエスケープ、例えば出力改行
[root@jfht ~]# echo "helloworld" helloworld [root@jfht ~]# echo -e "helloworld" hello world [root@jfht ~]# echo 'helloworld' helloworld [root@jfht ~]# echo -e 'helloworld' hello world [root@jfht ~]# echo hello; echo world hello world [root@jfht ~]#
次のエスケープ文字を使用できます.
a警告を発する;b前の文字を削除する.c最後に改行記号を付けない;f改行するがカーソルは元の位置にとどまる.行の先頭にカーソルを移動します.rカーソルは行の先頭に移動しますが、改行しません.t tabを挿入する;vはfと同じです;\挿入文字;nnはnnn(8進法)で表されるASCII文字を挿入する.
[root@jfht ~]# echo "hello\fworld" hello\fworld [root@jfht ~]# echo -e "hello\fworld" hello world [root@jfht ~]# echo "hello\vworld" hello\vworld [root@jfht ~]# echo -e "hello\vworld" hello world [root@jfht ~]#
例5標準エラー出力への出力
スクリプトを作成する場合、パイプを使用して前のコマンドの出力を後のコマンドの入力として使用することがよくあります.デバッグ情報を印刷するが、後のコマンドに干渉しない場合は、次のようにデバッグ情報を標準エラー出力に出力できます.
[root@jfht ~]# echo hello >&2 hello [root@jfht ~]#
次は、このテクニックを適用したスクリプトクリップです.
# usage: proc_cmd
proc_cmd()
{
CMD=$1
NUM=$(get_estimate_count $CMD)
# ,
if [ "$NUM" ]; then
printf "%-48s\t%16s
" $CMD $NUM
else
echo $CMD >&2
echo $CMD >>failed.dat
fi
}
問題を考える
1.出力する情報を一重引用符、二重引用符、および引用符に入れない違いは何ですか?
2.カラー文字をどのように出力しますか(lsの時の効果のようです)?
関連資料
【1】飛諾網linux echoの使い方
【2】360doc linuxコマンドecho(転載)
は、私が使ったLinuxコマンドシリーズの総ディレクトリを返します.