シェルで一般的に使用される特別な記号は次のとおりです。
$ $ {} $?$$ $ *
$#$ @ command
{} [] [[]]()(())
-
;コマンドセパレータ
シェルでは、;は主に1行に1つ以上の命令を実行するために使用されます。
-
;;連続するセミコロン(ターミネーター)は
ケースオプション専用であり、ターミネーターの役割を果たします。
case“ $ fop” inhelp)echo“ Usage:Command -help -version filename” ;; version)echo“ version 0.1” ;; esac -
'string'一重引用符 "string"一重引用符で
囲まれた二重引用符(二重引用符)は、単一文字列として扱われます。変数に代わって引用符で囲まれた$記号は効果がありません。つまり、変数の置換を防ぐために一般的な記号として扱われます。二重引用符で囲まれたコンテンツは、単一の文字列として扱われます。ワイルドカードの拡張は防止しますが、変数の拡張は可能です。これは、単一引数の処理とは異なります。
[root@localhost ~]# vartest=1234
[root@localhost ~]# echo '$vartest is good'
$vartest is good
[root@localhost ~]# echo $vartest
1234
[root@localhost ~]# echo "$vartest is good"
1234 is good
command
バックティックバックティックを使用して命令を実行します。
[root@localhost ~]# fdv=`ls`
[root@localhost ~]# echo $fdv
anaconda-ks.cfg Desktop Documents Downloads initial-setup-ks.cfg Music original-ks.cfg Pictures Public Templates Video
- |パイプライン
パイプラインは、UNIXシステムの基本的かつ重要な概念です。前のコマンドの標準出力を次のコマンドの標準入力として接続します。
[root@localhost ~]# who |wc -l
5
- $関連する説明
$(ドル記号)
は、変数置換の記号を表します。
$ *:スクリプトの実行参照変数を参照します。パラメーターを参照するためのアルゴリズムは、一般的な命令と同じです。命令自体は0で、その後に1が続きます。
$ @と$ *の記号は同じですが、違いが1つあります。
記号$ *は、すべての参照変数を全体として扱います。ただし、記号$ @は、各参照変数のセクションの概念を保持しています。
$#:これも参照変数に関連する記号です。彼女の役割は、参照変数の総数を示すことです。
$ ?:ステータス変数
一般的に、UNIX(linux)システムの処理は、システムコールexit()を実行することで終了します。この戻り値はステータス値です。親プロセスに戻り、子プロセスの実行状態を確認します。一般命令プログラムが正常に実行された場合、戻り値は0になり、失敗した場合、戻り値は1になります。
- 括弧()
①コマンドグループ。括弧内のコマンドは、新しいサブシェルプログラムを開きます。括弧内の変数はローカル変数であり、スクリプトの他の部分では使用できません。括弧内の複数のコマンドはセミコロンで区切られます。
②コマンド交換。コマンド置換$(cmd)は同等ですcmd
(これは一重引用符ではなく、 `はESCの下のキーです)。$(cmd)構造はシェルの実行中に検出され、$(cmd)のcmdは次のようになります。その出力を取得するために一度実行され、そしてこの出力を元のコマンドに入れます。例えば:
[root@localhost tmp]# ls
fstab functions hellobash issue mytestdir scripts
[root@localhost tmp]# echo $(ls)
fstab functions hellobash issue mytestdir scripts
[root@localhost tmp]# echo `ls`
fstab functions hellobash issue mytestdir scripts
[root@localhost tmp]#
- {}中括弧(コードのブロック)
①拡大する。中かっこでファイル名を展開します。中括弧では、空白が引用符で囲まれるかエスケープされない限り、空白は許可されません。展開は、echo {a、b} .txtのようにコンマ(、)で通常の展開に分割され、間隔のすべての内容が一覧表示されます。展開は、echo {1のように2つのドット(...)で実行されました。 ... 5} .txt1から5までの中間コンテンツを自動的に完成させます。
[root@localhost ~]# echo {a,b}.txt
a.txt b.txt
[root@localhost ~]# echo {1..5}.txt
1.txt 2.txt 3.txt 4.txt 5.txt
[root@localhost ~]#
②社内グループ。括弧内のコマンドとは異なり、中括弧内のコマンドは現在のシェルで実行され、サブシェルを再度開くことはありません。括弧内のコマンドはセミコロンで区切られ、最後のコマンドの後にセミコロンを付ける必要があります。{}の最初のコマンドと開き角かっこの間にはスペースが必要です。
- []ブラケット
多くの場合、プロセス制御に表示され、判断を囲む役割を果たします。
[[]]
このシンボルのグループは、基本的に前の[]シンボルと同じですが、||および&&ロジックシンボルを直接使用できます。
#!/bin/bash
read ak
if [[ $ak > 5 || $ak< 9 ]]
then
echo $ak
fi
- &バックグラウンドワーク
単一のアンパサンドをコマンドライン全体の最後に配置すると、コマンドラインがバックグラウンドで機能するようになります。
tar cvfz data.tar.gz data> / dev / null&