LinuxServer シェルとコマンド操作について コマンドの実行
コマンドの実行制御
Linuxで使用するコマンドの書式は次のとおりです。
コマンド名 [オプション] [引数] コマンドとオプションの間にスペースが入ります。
通常、コマンドを入力し、エンターキーを押す事で一つのコマンドを実行しますが、
メタキャラクタを使用することで複数のコマンドを実行することができます。
使用できるメタキャラクタと使い方は次のとおりです
メタキャラクタ | 使い方 | 説明 |
; | コマンド1 ; コマンド2 | コマンド1の後にコマンド2を必ず実行します |
&& | コマンド1 && コマンド2 | コマンド1が成功したら、コマンド2を実行します |
|| | コマンド1 || コマンド2 | コマンド1が失敗したら、コマンド2を実行します |
( ; ) | (コマンド1 ;コマンド2) | コマンドをひとつのグループとしてします |
$ ls
Maildir TimeSheet_180.zip hoge2.txt hoge4.txt mylib
TimeSheet_180.xls hoge1.txt hoge3.txt kekka01.log [コマンド]オプションを付けて実行
$ ls -l
合計 1020
drwx—— 5 test test 4096 11月 1 11:43 Maildir
-rw-rw-r– 1 test test 151240 10月 31 18:17 TimeSheet_180.zip
-rw-rw-r– 1 test test 3777 11月 2 13:31 hoge1.txt
-rw-rw-r– 1 test test 0 11月 2 13:30 hoge2.txt
-rw-rw-r– 1 test test 0 11月 2 13:30 hoge3.txt
-rw-r–r– 1 test test 660020 10月 3 04:01 hoge4.txt
-rw-rw-r– 1 test test 102 11月 7 11:40 kekka01.log
-rw-rw-r– 1 test test 126 11月 7 11:47 kekka02.log
-rw-rw-r– 1 test test 183 11月 7 11:47 kekka03.log
drwxrwxr-x 2 test test 4096 10月 26 16:06 mylib [コマンド]pwdコマンドを実行してから、すぐにlsコマンドを実行。
$ pwd ; ls
/home/test
Maildir TimeSheet_180.zip hoge2.txt hoge4.txt mylib
TimeSheet_180.xls hoge1.txt hoge3.txt kekka01.log [コマンド]pwdコマンドを実行してから、すぐにlsコマンドを実行。
$ pwd ; ls kekka0.txt
/home/s7admin
ls: kekka0.txt にアクセスできません: そのようなファイルやディレクトリはありません [コマンド]lsコマンドの結果がエラーの為、echoコマンドを実行していない
$ ls -l kekka.txt && echo ‘File Not Found’
ls: kekka.txt にアクセスできません: そのようなファイルやディレクトリはありません [コマンド]lsコマンドの結果がエラーの為、echoコマンドを実行する
$ ls -l kekka.txt || echo ‘File Not Found’
ls: kekka.txt にアクセスできません: そのようなファイルやディレクトリはありません
File Not Found [コマンド]date;pwd;lsの結果をkekka02.logへ記録。date;pwdの結果が表示される
$ date;pwd;ls > kekka02.log
2012年 11月 7日 水曜日 11:46:50 JST
/home/test [コマンド]date;pwd;lsを一まとめにして実行し、結果をkekka02.logへ記録。
date;pwdの結果は表示されない
$ (date;pwd;ls) > kekka03.log
$ ls kekka0*
kekka01.log kekka02.log kekka03.log
$
引用符「 ‘ 」と「 ” 」と「 ` 」
引用符を使用することで、コマンド引数の文字列について異なった解釈をシェルに与えることができます。
「 ‘ 」シングルクォーテーション
シングルクォーテーションで囲まれた文字列は、変数も含めて、全て文字列として扱います。
[コマンド]変数’DATE’に文字列’date’を代入し、変数DATEを「’」で括り表示させます。
$ DATE=date
$ echo ‘$DATE’
[実行結果]文字列’$DATE’が表示されます
$DATE
「 ” 」ダブルクォーテーション
ダブルクォーテーションで囲まれた文字列は、文字列として扱いますが、変数の場合は内容を展開します。
[コマンド]変数DATEを表示
$ echo “$DATE”
[実行結果]変数’$DATE’の内容が展開されます
date
「 ` 」バッククォーテーション
バッククォーテーションで囲まれた文字列がコマンドの場合、コマンドを実行し、文字列として扱います。
[コマンド]変数’DATE’に文字列’date’が代入され、dateコマンドとして処理されます。
$ echo `$DATE`
2012年 11月 7日 水曜日 12:05:50 JST