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番目には何も入っていない。
配列の番号は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 ))
参考すぎゃーんメモ
参考サイト
- 漢のzsh
- ウェブテコでzshについて発表したので資料を公開する
- ウェブテコで発表したzshの設定ファイル
- zshの基本的な使い方1/3
- zshの基本的な使い方2/3
- zshの基本的な使い方3/3
- Macの.zshrcを晒してみる
- zsh for the working researcher