LoginSignup
0
0

More than 3 years have passed since last update.

Linux覚え書きシェルスクリプト

Posted at

概要

Linux学習で覚えたコマンドや知識をメモする記事です。

事前知識

実行権限

実行できる権限があること
権限については、Linux覚え書きユーザ管理を参照。

シェル変数と環境変数

  • シェル変数 :実行しているシェルの内部でのみ有効
  • 環境変数 : シェル外で引き継げる

基本コマンド

echo :文字列の出力

echo [オプション] 文字列
オプション 説明
-n 改行削除

シェル変数

変数定義

a=1
echo $a #変数の内容を参照

配列

a[0]=1
a[1]=2
index=1
echo ${abc[index]}

変数の一覧表示

シェル変数の一覧を表示する

set

環境変数の一覧表示

env

unset: 変数を削除する

unset []

export :環境変数を作成する

export a
export y=123

read :標準入力を読み込む

read [変数名]

引用符

'(シングルクォート)、"(ダブルクォート)は文字列で表現する
`(バッククォート)はコマンドが実行される


test=date

echo 'aaa $test' # aaa $test
echo "aaa $test" # aaa date
echo "aaa `$test`" # aaa thu mar 20YY MM 

引数

実行時にオプションを引数として参照する

echo $1
echo $2

¥ :特殊な文字列

  • 特殊な文字を文字列で表示したい場合に、直前に¥をつける
  • 改行として行末に¥を追加する

source :指定ファイルを読み込んでシェル環境を設定

# bash_profileなどを更新した時
source ~/.bash_profile

# シェルスクリプトで定義された変数を環境変数として取り込む
source ./test.sh

条件分岐 / 繰り返し

if文

if 条件式 then ... elif 条件式 else fi
演算子 説明
a == b aとbが等しければ真
a != b aとbが等しくなければ真
a -eq b aとbが等しければ真
a -ne b aとbが等しくなければ真
a -ge b aがb以上であれば真
a -le b aがb以下であれば真
a -gt b aがbより大きい時は真
a -lt b aがbより小さい時は真

case文

case 変数 in
   値A)
     処理1;;
   値B|値3)
     処理2;;
   *)
     # 条件に一致しなかった場合の処理
     処理3;;
esac

for文

for 変数 in 値のリスト
do
   echo $i
done

while/until文

while 条件式 # 成立する間繰り返す
do
   処理
done

until 条件式 # 成立しない間繰り返す
do
   処理
done

# カウンタで回す
count=1
while [$count -le 10]
do
   count=`$count +1`
done

select文

select name in "a" "b" "c"
do
    echo "you selected $name"
done

# 実行結果
# 1) a
# 2) b
# 3) c
# $?

繰り返しの制御

break : 繰り返しを終了
continue :繰り返しの先頭に戻る

複数の条件

AND条件

条件A -a 条件b -a 条件C
条件a && 条件b && 条件C

OR条件

条件A -o 条件b -o 条件C
条件a || 条件b || 条件C

ファイルの有無確認

# test コマンドを利用
if test -d path ; then...
# []を利用
if [-d path]; then
演算子 説明
-f ファイル名 ファイルなら真
-d ファイル名 ディレクトリなら真
-e ファイル名 ファイルが存在すれば真
-L ファイル名 シンボリックリンクなら真
-r ファイル名 読み取り可能なファイルなら真
-w ファイル名 書き込み可能なファイルなら真
-x ファイル名 ファイルが存在して、実行権限があれば真
-s ファイル名 サイズが0より大きいなら真

サブルーチン

関数


function 関数名
{
    処理
}

関数名()
{
    処理
}

# 関数を実行(引数付き)
関数名 aa bb

return

関数内での処理を終了する

return 変数名

デバッグ


sh -x ファイル
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0