Linuxで自分の使ってるシェルの種類を確認するときのメモ
自分の使ってるシェルを確認
$ echo $SHELL
で現在使ってるシェルの種類がわかる。自分の環境だと。
/bin/tcsh
とでた。
sh、bash、kshはsh系と呼ばれる。文法とかも微妙に違う。
zshはどっちもいけるらしい。
$ cat /etc/shells で使えるシェルを確認。自分の環境だと
/bin/bash
/sbin/nologin
/bin/ksh
/bin/zsh
/bin/tcsh
/bin/csh
/usr/bin/ksh
/usr/local/bin/tcsh
と出てくる。大抵のシェルは使えるみたいだ。cshの文法で適当にスクリプト書いてみる
test.csh
#! /bin/csh
set a=0
echo $a
で0が出力される。bashでやりたければ
a=0
echo $a
で
sh ./test.csh とか
とかやればbashでもまわる。拡張子が.cshでも中身がbashの文法であれば普通にbashとして
まわった。どゆこと?と思ったが、どうやら拡張子は見やすくするために付けるだけであまり意味を持たないらしい。
まぁでも拡張子が.cshなのに中身がbashなのは混乱を招くので、test.shとかしといたほうがいいな。
ちなみに最初の#! /bin/cshもcshで回す時に必要だと思ってたけど、これも別になくてもいいらしい。
次に実行権限を与える。
$ chmod +x test.csh
これで
./test.csh
だけで実行できるようになる。#! bin/cshでcshのpathを指定しているのでcshで実行できるみたいだ。
今まで理解がなあなあで使ってた部分がちょっとすっきりした。