目次
1. シェル変数
1.1. システム変数
一般的に使用されるシステム変数は次のとおりです。
キー: $?、関数: 前の命令または関数の戻り値を実行
キー: $#、機能: コマンドラインパラメータの形式
キー: $n、関数: 現在のプログラムの n 番目のパラメーター、n=1,2,3,4,...,9
キー: $0、機能: 現在のプログラムの名前
キー: $*、機能: すべてのパラメータを「パラメータ 1 パラメータ 2...」の形式で保存します。
ボタン: $@、機能: すべてのパラメータを「パラメータ 1」「パラメータ 2...」の形式で保存します。
ボタン:$$、機能:(プロセスID番号)このプログラムのPID
キー: $!、機能: 前のコマンドの PID
キー: $-、機能: シェルで使用されている現在のオプションを表示します。set コマンドと同じ機能です。
例:
vim t1.sh ファイルを編集して表示します
シェルスクリプトを実行して変数に値を代入する
1.2. 環境変数
キー PATH、機能: コマンド検索パス、区切り文字としてコロンを使用します。しかし、現在のディレクトリはシステムパスにありません
HOME ボタン、機能: ユーザーのルート ディレクトリのパス名。cd コマンドのデフォルト パラメータです。
キー列、機能: コマンド編集モードで使用できるコマンドラインの長さを定義します。
キーエディター、機能: デフォルトの行エディター
ボタン VISUAL、機能: デフォルトのビジュアル エディター
キー FCEDIT、機能: コマンド fc で使用されるエディター
ボタン HISTFILE、機能: コマンド履歴ファイル
キー HISTSIZE、機能: コマンド履歴ファイルに含めることができるコマンドの最大数
キー HISTFILESI、機能: 履歴ファイルに含まれる最大行数をコマンドします。
HISTORY ボタン、機能: 履歴コマンドを表示
キー IFS、機能: シェルで使用される区切り文字を定義します。
ボタン LONGAME、機能: ユーザーのログイン名
ボタン MAIL、機能: 変更時間を監視するためにシェルを必要とするファイルを実行します。ファイルが変更されると、シェルは「You have mail」というメッセージをユーザーに送信します。
ボタン MAILCHECK、機能: シェルは MAIL ファイルの期間をチェックします。単位は s です。
ボタン MAILPATH、機能: MAIL と似ていますが、コロンで区切られた一連のファイルを使用できます。各ファイルの後に疑問符とユーザーへのメッセージを続けることができます。
ボタン SHELL、機能: シェルのパス名
キー TERM、機能: 端末タイプ
キー TMOUT、機能: シェルが自動的に終了する時刻、単位は s、0 はシェルの自動終了を禁止することを意味します
キー PROMPT_COMMAND、機能: メインのコマンド プロンプトの前に実行する必要があるコマンドを指定します。
ボタン PS1、機能: メイン コマンド プロンプト
ボタン PS2、機能: 二次コマンド プロンプト。コマンド実行中にデータ入力が必要な場合に使用されます。
ボタン PS3、機能: 選択のコマンド プロンプト
ボタン PS4、機能: デバッグ コマンド プロンプト
MANPATH を押します。機能: コロンで区切られたマニュアル ページへのパスを検索します。
キー LD_LIBRARY_PATH、機能: コロンで区切られたライブラリのパスを検索します。
例: env コマンドを使用して環境変数を表示する
1.3. カスタム変数
1.3.1. 命名規則
1) 最初の文字は文字 (az、Az) である必要があります。
2) 間にスペースを入れることはできず、アンダースコア (_) を使用できます。
3) 句読点は使用できません
4) BASH のキーワードは使用できません (予約キーワードを表示するには help コマンドを使用できます)
カスタム変数の正当な命名例:
book123 MY_name_is_dashuaibi
カスタム変数の不正な命名例:
123xxx x#@ 数学
エラーポイント: 数字で始まる名前に特殊文字が含まれています
1.3.2. カスタム変数の使用
注意点:
1)变量赋值,直接用=即可
2)使用变量需要加上$符合
3)输出变量需要使用echo命令
4)变量包含在字符串中,要使用需要加上{}符合括起来
1.3.3. 変数の代入と置換
1) 代入方法:変数名 = 値
注意点:
1)给变量赋值,不能在=两边留空格
間違った使用法: (= 記号の周囲にスペースを入れない)
2) 変数に値を複数回代入します --> 変数の値は次のとおりです: 最後の代入の値
3) 変数の値をクリア --> unset コマンドを使用します。
4) 変数の置換、置換条件を{}内に置きます。
ケース 1: 変数が未定義または値が空の場合、戻り値は value の内容です。それ以外の場合は、${variable:-value} の形式で変数の値を返します。
ケース 2: 変数が未定義、または値が空の場合、value の値が返されると、変数に value が代入されます。形式は ${変数:=値} です。
ケース 3: 変数に値が割り当てられ、その値が value に置き換えられます。それ以外の場合、置換は実行されません。形式は ${variable:+value} で、値が変数を置き換えます。
2. シェル配列
2.1. 配列の宣言と代入
2.1.1. 配列の宣言
コマンド: 宣言、関数、配列の宣言
格式:
declare [+/-] [选项] 变量
[+/-]含义:
+/-:指定或关闭变量的属性
选项含义:
a:定义后面名为变量的类型为数组(array)类型
i:定义后面为变量的类型为整型数字(integer)类型
x:将后面的变量变成环境变量
r:将变量设置成readonly类型
f:将后面的变量定义为函数
配列宣言の例:
2.1.2. 配列の割り当て
シェルでは、配列を表すためにかっこが使用され、配列要素はスペースで区切られます。
1) 配列定義の形式 1: 連続代入
配列名 = {値 1 値 2 値 3 ... 値 n}、配列には連続した値が割り当てられ、各値はスペース記号で区切られます。
2) 形式 2: 配列の各コンポーネントを個別に割り当てます。不連続な添字を使用でき、添字の範囲に制限はありません。
例: 配列名 [シリアル番号] = 値
例:
x[0]=值1
x[2]=值2
x[5]=值3
3) 形式 3: 配列を宣言して値を代入する
宣言 -a 配列名={値 1 値 2 値 3 値 n}
2.2. 配列の読み取りと長さ
2.2.1. 配列の読み取り
形式: ${配列名[添字]}
1) 配列の 1 つの要素をフェッチする場合、構文は次のとおりです: echo ${配列名[添字]}
2) 配列のすべての要素を取得するには、echo ${array name[@]} または echo ${array name[*]} を使用します。
2.2.2. 配列の長さ
1) echo ${#array name[@]} または echo ${#array name[*]} を使用して配列の長さを取得します
2) #{#array name[n]} を使用して単一要素の長さを取得します
3. シェル入出力
3.1. コマンド read を入力します。
read ステートメントを使用して、キーボードまたはファイルのテキスト行から情報を読み取り、それを変数に割り当てます。
フォーマット:
変数名を読み取ります 変数名
注意点:
1) シェルは複数の変数間の区切り文字としてスペースを使用します。
2) シェルは入力テキストフィールドの非常に長い部分を最後の変数に代入します。
3.2. コマンドエコーの出力
使用法: echo [オプション] 文字列
オプション オプションのパラメータ:
-n, 機能: 出力後に自動的に折り返されません。
-e, 機能: 「\」文字の変換を有効にします。
-\, 機能: 文字変換
-\a, 機能: 警告音を鳴らします
-\b, 機能: 前の文字を削除します
-\c, 機能: 最後に改行記号を追加しません
-\f, 機能: 改行してもカーソルは元の位置に留まります
-\n、機能: 改行とカーソルが行の先頭に移動します
-\r, 機能: カーソルを行の先頭に移動しますが、行は折り返されません
-\t、機能: タブを挿入
-\v、機能: \f と同じ
-\\、機能: \ 文字を挿入
-\x, 機能: 例の 16 進数で表される ASCII 文字を挿入します。
4. シェル演算子と特殊文字
4.1. 演算子
4.2. 特殊文字
4.2.1. バックスラッシュ
バックスラッシュはエスケープ文字であり、シェルがその後に続く文字に対して特別な処理を実行せず、通常の文字として扱うことを示します。
4.2.2. 二重引用符
$、バックスラッシュ、バックティックを除く二重引用符で囲まれた文字は特殊文字であり、その機能はそのままで、残りの文字は通常の文字として扱われます。
4.2.3. 一重引用符
一重引用符で囲まれた文字は通常の文字として表示されます
4.2.4. バッククォート
シェルは、バックティックで囲まれた文字列をコマンド ラインとして解釈して最初に実行し、バックティック部分全体を標準出力の結果に置き換えます。
4.2.5. コメント
# で始まるテキスト行はコメント行を表します
5. シェルステートメント
5.1. テストコマンド
機能: 特定の条件が真かどうかを確認します。条件が真の場合は値 0 を返し、条件が真でない場合は 0 より大きい値を返します。
形式: テスト式または [式]
5.1.1. 整数演算子
5.1.2. 文字列演算子
5.1.3. ファイル演算子
5.1.4. 論理演算子
5.2. if ステートメント
5.2.1. 単一分岐の場合
5.2.2. 二重分岐の場合
5.2.3. 複数分岐の場合
5.3. ケースステートメント
5.4. while ステートメント
5.5. untilステートメント
5.6. for ステートメント
5.7. ループ制御ステートメント
5.7.1、休憩
使用: for、while、until、関数で: スクリプトにループ本体内の他のステートメントを無視させ、ループを強制的に終了させます。
5.7.2、続行
使用法: for、while、until、関数内: スクリプトに次のステートメントをスキップさせ、次のループを実行させます。
6. 包括的な応用例
6.1. 応用例 1
シェルスクリプトを記述し、実行後に「数値を入力してください:」というプロンプトの行を出力し、ユーザーが入力した値をendと入力するまで順番に出力します。