Linux標準教科書 9章復習
シェルスクリプト
シェルとシェルスクリプト
プログラミング
- コンピュータに対し、指示を与え順番に実行させる機能をプログラムという
- プログラムを作成することをプログラミングという
- 条件分岐や繰り返しなどの制御機能を実行することをシェルスクリプトと呼ぶ
プログラムの要素
- 順次実行
- 条件分岐
- 繰り返し
- サブルーチン
シェルスクリプトの作成
- 1行目には利用するシェルの種類とコマンド位置を指定
コメント
#
でその行をコメントアウト
echo
- 引数で与えた文字列を出力する
echo 文字列
- 引数で与えた文字列を出力する
変数
- 代入は=、参照は変数名に$をつける
abc
- 配列変数の参照は$の後に{}で囲む
${abc[0]}
- 代入は=、参照は変数名に$をつける
シェル変数と環境変数
- シェル変数は実行しているシェルの中でのみ有効
- 環境変数はそこから実行されたコマンド内でも有効
export 変数名
read
- 標準入力からデータを読み込む、変数にデータがある場合は上書き
read 変数名
- 標準入力からデータを読み込む、変数にデータがある場合は上書き
シェル変数
set
シェル変数を一覧表示unset 変数名
指定した変数を削除
-
env
環境変数を一覧表示unset 変数名
指定した変数を削除
引用符
- 囲まれた文字列によって処理が異なる
- ' $付の変数があった場合、変数は展開されない
- " $付の変数があった場合、変数は展開される
- ` $付の変数があった場合、コマンドとして実行された結果が表示される
引数
ファイル名 引数
- 引数は$引数番号で取得可能
- $0は実行コマンド名
- $#は引数の数
shift文
- 引数の順番を1つ後ろにずらす
エスケープシーケンス
- 特殊文字の表示や改行ができる文字
- ダブルクォートを出力する方法
- ¥"文字列¥"で囲む
- シングルクォートで囲む
- ¥は改行文字としても扱われる
- -eオプションで
¥n
改行,¥000
(8進数)が利用可能
sourceコマンド
- 指定されたファイルを読み込んでシェル環境を設定する
- 一般的な用途としては、シェルの環境設定ファイルを変更後ログインし直さずに設定を現在のシェル上で有効にする
if文
for文
for 変数 in 値のリスト do 処理 done
while/until文 ``` while 条件式 do 処理 done
until 条件式 do 処理 done ```
select文
- ユーザに数値の入力を促す
select 変数 in リスト do 処理 done
- ユーザに数値の入力を促す
サブルーチン
- 一連の処理をまとめて再利用可能にしたもの
function 関数名{ 処理 } 関数名 { 処理 }
return文
return 変数名
実際のシェルスクリプト
- 起動スクリプト
コマンド1 && コマンド2 コマンド1が正常終了した場合、コマンド2を実行 コマンド1 || コマンド2 コマンド1が異常終了した場合、コマンド2を実行 コマンド1 && コマンド2 ... コマンドN || コマンドY コマンド1から正常終了する限り右に進み、異常終了した場合にコマンドYを実行
- exitの後の終了コードは親プロセスに返すため、リターンコードと呼ばれる
- 正常終了は0でそれ以外はエラーコード
- 設置された値は特殊変数「?」に格納され、「$?」で参照する
LANG=xxx
コマンドの言語設定により出力される言語を指定することで出力結果の処理を統一出来る 165関数のシェル
- 起動スクリプト
関数のシェルスクリプト
- 関数を利用することで呼ばれているプログラムの機能を一括で更新できる
-
- sh
- -xでシェルスクリプトの中身を表示しながら実行できる
- sh