fmemo

Zsh

最終更新:

fmemo

- view
管理者のみ編集可

環境設定ファイル


ファイル名 ログインシェル インタラクティブシェル シェルスクリプト ログアウト
.zshenv ×
.zshrc × ×
.zprofile × × ×
.zlogin × × ×
.zlogout × × ×

  • 基本的には.zshrcを整備すればよい。
  • ログイン時のみ実行したいことは.zloginか.zprofileに書く。
  • シェルスクリプトで、.zshenvを読み込ませたくないときは -fをつける

.zshrc


書きかけ

補完を有効にする。
autoload -U compinit
compinit


変数


スカラー変数


変数の種類


文字列、数値などがある。数値は整数、小数どちらも使える。 

変数への値の代入、参照


$ VAR=apple #イコールの前後に空白をいれないこと
$ echo $VAR #参照するときは$をつける
apple
$ echo ${VAR} #{}でくくってもよい。変数の終わりが明瞭でない場合は必要
apple

配列


BASHとの相違点


zshの配列はbashと番号の付け方がことなるので注意が必要である。
配列の番号はcshなどと同様に1から始まる。(bashでは0から始まる)zshの配列の0番には1番と同じものが
入っている。zsh4.3.9の場合、デフォルトだと0番目には何も入っていない。

$ setopt KSH_ZERO_SUBSCRIPT

とすると配列0番目に1番目と同じものが入るが、使わないほうがよいだろう。


配列の作成方法1


$ fruits[1]=apple # 配列は1からはじまる
$ fruits[2]=pear
$ fruits[3]=orange
$ fruits[4]=kiwi
$ echo $fruits[1]
apple
$ echo $fruits
apple pear orange kiwi

配列の作成方法2


$ fruits=(apple pear orange kiwi)
$ number=(123 456 789) # 数字も要素にできる。
$ both=(123 apple 789) # 数字と文字列の混合も可能。

特殊な変数


$# 引数の数
$@ すべての引数(区切り文字としてスペースを使う)
$* すべての引数(区切り文字としてIFSの値を使う)
$? 直前に実行したコマンドが正常終了なら0, 異常終了ならそれ以外

シェルスクリプト


if文


その1


if [ -f file ] ; then
  echo "OK"
fi

その2


if [ -f file ] ; then
  echo "Yes"
else
  echo "No"
fi

その3


if [ -f file ] ; then
  echo "file"
elif [ -L file ] ; then
  echo "link"
fi

その4

if [ -s file ] ; then
  echo "nonzero"
elif [ -e file ] ; then
  echo "exist"
else 
  echo "No"
fi

for文


基本形


for fruit in apple pear orange
do
  echo $fruit
done

連番の数字を使う場合


for num in {0..10}
do
  echo $num
done

C言語風


for (( i=0; i<5; i++ ))
do
  echo $i
done

while文


i=0
while [ $i -lt 5 ]
do
  echo $i
  i=`expr $i + 1`
done

case文


(かきかけ)

select文


(かきかけ)

until文


(かきかけ)

上記の構文の省略形


if


if [[ -f file ]] echo OK

for


for fruit in apple pear orange ; echo $fruit

for fruit ( apple pear orange ) echo $fruit

for (( i=0; i<5; i++ )) echo $i

while


i=0 ; while [[ $i -lt 5 ]] { echo $i ; i=`expr $i + 1` }

select


(かきかけ)

case


(かきかけ)

read文


以下の例ではプロンプトに入力された文字を変数varに代入し、それをそのまま出力している。

read var
echo ${var}

getops文


(かきかけ)

算術演算


$ echo $(( 1+2 ))
3

小数演算もできる

$ echo $(( 0.5*2 ))
1.

その他 & 未整理事項


0以上1未満の乱数を返す


$ echo $(( $RANDOM./2**15 ))
$ echo $(( $RANDOM./1<<15 ))


参考サイト




記事メニュー
目安箱バナー