ファイル読み込み
|
|
case文
|
|
for文
|
|
while文
|
|
while無限
|
|
OSコマンド実行
|
|
演算子
| 演算子 | 意味 | 例:let no=6 | 結果 |
|---|---|---|---|
| exp1 -eq exp2 | exp1 と exp2 が等しいなら真 | if [[ $no -eq 6 ]];then echo YES;fi; | YES |
| exp1 -ne exp2 | exp1 と exp2 が等しくないなら真 | if [[ $no -ne 6 ]];then echo NO;fi; | |
| exp1 -lt exp2 | exp1 < exp2 なら真 | if [[ $no -lt 6 ]];then echo NO;fi; | |
| exp1 -gt exp2 | exp1 > exp2 なら真 | if [[ $no -gt 6 ]];then echo NO;fi; | |
| exp1 -le exp2 | exp1 <= exp2 なら真 | if [[ $no -le 6 ]];then echo YES;fi; | YES |
| exp1 -ge exp2 | exp1 >= exp2 なら真 | if [[ $no -ge 6 ]];then echo YES;fi; | YES |
文字列検査演算子
| 演算子 | 意 味 | 例:str=“oracle”;str1=“AZ”;str2=“BZ” | 結果 |
|---|---|---|---|
| -n string | string の長さがゼロでなければ真 | if [[ -n $str ]];then echo YES;fi; | YES |
| -o option | option が設定されていれば真 | if [[ -o $str ]];then echo NO;fi; | |
| -z string | string の長さがゼロならば真 | if [[ -z $str ]];then echo NO;fi; | YES |
| string = pattern | string と pattern が一致すれば真 | if [[ $str = “oracle” ]];then echo YES;fi; | YES |
| string != pattern | string と pattern が一致しなければ真 | if [[ $str != “oracle” ]];then echo NO;fi; | |
| string1 < string2 | string1 < string2 なら真 | if [[ $str < “ORACLE” ]];then echo NO;fi; | |
| string1 > string2 | string1 > string2 なら真 | if [[ $str > “ORACLE” ]];then echo YES;fi; | YES |
| (expression) | expression が真なら真 | if [[ ($str = [a-z]*) ]];then echo YES;fi; | YES |
| ! expression | expression が偽なら真 | if [[ ! ($str = [A-Z]*) ]];then echo YES;fi; | YES |
| exp1 && exp2 | exp1 と exp2 が真なら真 | if [[ ($str1 = [A-Z]*) && ($str2 = [A-Z]*) ]];then echo YES;fi; | YES |
| exp1 || exp2 | exp1 か exp2 が真なら真 | if [[ ($str1 = “AZ”) || ($str2 = “AZ”) ]];then echo YES;fi; | YES |
ファイル検査演算子
| 演算子 | 真となる条件 | 例 | 結果 |
|---|---|---|---|
| -a file | ファイルは存在する | if [[ -a $HOME/.cshrc ]];then echo YES;fi | YES |
| -b file | ファイルは存在し、ブロック型である | if [[ -b /dev/null ]];then echo YES;fi | |
| -c file | ファイルは存在し、文字型である | if [[ -c /dev/stdin ]];then echo YES;fi | YES |
| -d file | ファイルはディレクトリ | if [[ -d $HOME ]];then echo YES;fi | YES |
| -f file | ファイルは普通のファイル | if [[ -f $HOME/.cshrc ]];then echo YES;fi | YES |
| -g file | ファイルは存在し、setgid が設定されている | if [[ -g $HOME/.cshrc ]];then echo YES;fi | |
| -k file | ファイルは存在し、sticky が設定されている | if [[ -k /opt/SWAP ]];then echo YES;fi | |
| -p file | ファイルは存在し、fifo である | if [[ -p /tmp/.X11-pipe/X0 ]];then echo YES;fi | |
| -r file | ファイルをユーザが読める | if [[ -r $HOME/.cshrc ]];then echo YES;fi | YES |
| -s file | ファイルは存在し、0 より大きい | if [[ -s $HOME/.cshrc ]];then echo YES;fi | YES |
| -t N | ファイルディスクリプタ N が端末である | if [[ -t 1 ]];then echo YES;fi | YES |
| -u file | ファイルは存在し、setuid が設定されている | if [[ -u $HOME/.cshrc ]];then echo YES;fi | YES |
| -w file | ファイルは存在し、ユーザが書ける | if [[ -w $HOME/.cshrc ]];then echo YES;fi | YES |
| -x file | ファイルは存在し、ユーザが実行できる | if [[ -x /bin/ksh ]];then echo YES;fi | YES |
| -G file | ファイルは存在し、グループ id はシェル と同じ | if [[ -G $HOME/.cshrc ]];then echo YES;fi | YES |
| -L file | ファイルは存在し、シンボリックリンクである | if [[ -L /usr/lib/libcrypt.so ]];then echo YES;fi | YES |
| -O file | ユーザはファイルの所有者 | if [[ -O $HOME/.cshrc ]];then echo YES;fi | YES |
| -S file | ファイルは存在し、ソケットである | if [[ -S /var/tmp/.oracle/sora817 ]];then echo YES;fi | YES |
| F1 -nt F2 | ファイルは存在し、F2 より新しい | if [[ .cshrc -nt $HOME/.cshrc ]];then echo YES;fi | YES |
| F1 -ot F2 | ファイルは存在し、F2 より古い | if [[test.c -ot test.o ]];then echo YES;fi | YES |
| F1 -ef F2 | ファイルは存在し、ファイルが同じファイルを参照 | if [[ /usr/lib/libcrypt.so -ef /lib/libcrypt.so.1 ]];then echo YES;fi | YES |
メタ文字
| メタ文字 | 意 味 | 例 |
|---|---|---|
| ~ | ホームディレクトリ | cd ~taka |
| $ | 変数識別子 | $HOME |
| $! | 直前に呼び出した子プロセスの番号 | kill $! |
| $- | シェルに与えられたフラグ | |
| <,>,&,! | 入出力の切換え | echo $HOME > /tmp/out |
| !,^ | 履歴 | !vi |
| $$ | 起動中のシェルのプロセス番号 | set out=/tmp/$$.out |
| ; | コマンド区切り | cd;pwd |
| () | コマンドグループ | (cd; make) |
コマンド |
コマンド置き換え | set file = ls |
| & | バックグラウンドジョブ | tst & |
| ,’," | 文字をエスケープする | echo ‘$HOME’ |
| \ | 次文字をエスケープする | |
| echo \$HOME | 継続行であることを示す。前に空白が必要 | XXXXXXX \ |
| *,?,[,],,{,},|,~,- | ファイル名展開 | ls t?.* |
| 文字として扱いたい場合はエスケープ () | ||
| # | コメント | |
| | | パイプ | ls | more |