シェルスクリプト

シェルスクリプトとはなんぞ

名前と現在時刻を表示するシェルスクリプト

シェルスクリプト hello
echo "こんにちは" `whoami` "さん"
echo -n "現在時刻:"
date '+%X'
  • whoami コマンドを「`」で囲みコマンド展開
  • echo コマンドの -n オプションで改行をしない指定
  • date コマンドで現在時刻を表示。引数 '+%X' で時刻のみ表示指定
シェルスクリプト hello を実行する
source hello

実行結果

こんにちは riceplanting さん
現在時刻:13時21分44秒

シェルスクリプトをファイル名のみで実行する

hello ファイルの先頭に以下の1行を付け加える
#! /bin/bash
  • bash(/bin/bash)で実行する指定
  • 実行するためには実行権限が必要。 chmod a+x hello で実行権限付与
シェルスクリプト hello を実行
  • 環境変数PATHにはカレントディレクトリを示す 「.」が含まれて居ないため、そのままファイル名のみで実行するとエラーが出る。

その為、「./」を付けてカレントディレクトリを示すパスを指定する必要がある。

./hello

「./」を使わずにシェルスクリプト hello を実行する方法

環境変数PATHで指定されているディレクトリに保存する
/usr/local/bin 全ユーザーが使用するコマンドを保存
~/bin 自分だけが使用するコマンドを保存

この2つのディレクトリに保存するのが一般的

環境変数PATHに ~/bin が指定されているかチェック
echo $PATH

もしくは

printenv PATH

実行結果

/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin:/home/riceplanting/bin

/home/riceplanting/bin と指定されているのを確認。
※ ない場合は環境変数PATHを追加する

export PATH=$PATH:$HOME/bin
source ~/.bash_profile
環境変数PATH指定されたディレクトリにスクリプトを保存する
cp hello /home/riceplanting/bin/

これでファイル名のみで実行可能になる

  • 実行と結果
[riceplanting@localhost public_html]$ hello
こんにちは riceplanting さん
現在時刻:13時43分37秒