shellファイル作成
cd /home/
echo $SHELL
which bash > test.sh
chmod +x test.sh
more test.sh
/usr/bin/bash
1行目を編集
vi test.sh
編集後の内容
# more test.sh
#!/usr/bin/bash
項目 | 説明 | 備考 |
---|---|---|
#!/usr/bin/bash | シバン | シェルスクリプトの1行目に必ず書かなくてはいけない |
Vim 操作早見表
コメント
#コメント
変数
STR1="aaa"
echo "$aaa"
パラメータ
#!/bin/bash
echo '$1 =' "$1"
echo '$2 =' "$2"
echo '$3 =' "$3"
外部ファイルから値を参照
dev_file.txt
AAA1="a"
BBB1="b"
CCC1="c"
test.sh
#!/usr/bin/bash
source ./dev_file.txt
echo ${AAA1}
echo ${BBB1}
echo ${CCC1}
うまくいかない時
項目 | 説明 | 備考 |
---|---|---|
シバン | 1行目が「#!」になっていない |
リンク
2>&1
expect
項目 | 説明 | 備考 |
---|---|---|
-c オプション | シェルの中でexpectを動かす場合は、-c オプションを付けます。 | expectで処理する内容を "(ダブルクォーテーション) で囲みます |
{} | 複数行で書く場合はブレース{}で囲む。1行で書けるときは付けない。 | |
set timeout | デフォルトのタイムアウトする秒数を指定します。 指定しない場合は10秒となっています。 |
|
spawn | expect内でプロセスを生成するコマンドです。 | |
expect | expectスクリプトで、マシンからの応答を読み取り、パターンマッチをする時に利用します。 パターンマッチはswitch文、case文と同様の処理が実現できます。 |
|
-glob | globを使います。デフォルトではこれが指定されています。 | |
-regexp | 正規表現を使います。 | -re |
-exact | globや正規表現の展開方法を使わず、基本的に文字をそのまま解釈します。 Tclの変数展開は利用可能です。 |
|
send | マシンに文字列を返答するコマンドです。 | |
exit | expectの処理を終了させ、返り値として指定した数字を返します。 |
終了ステータス
項目 | 説明 | 備考 |
---|---|---|
$? | コマンド終了時には「終了ステータス (exit-status)」と呼ばれるコマンドの成否を表す数値が特殊変数 $? に自動で設定される | |
exit | シェルスクリプトでは exit コマンドに指定したパラメータ (0 もしくは 1~255 の正の整数値のみ可) が、そのシェルの終了ステータスとなる。シェルスクリプトにおいても正常終了時は exit 0 で、異常終了時には exit 1 で終了するようにするのが慣例である。 |