シェルスクリプト

Linux

目次一覧

 状態:-  閲覧数:1,399  投稿日:2017-02-23  更新日:2019-12-02  
シェルスクリプト / シェルスクリプトとは? / Windows環境との比較

シェルスクリプト1行目 /「/bin/sh」は「bash」のシンボリックリンク /「/bin/sh」と「/bin/bash」の違い

「bash」起動させる「shebang」記述の結論


シェルスクリプト / シェルスクリプトとは? / Windows環境との比較

 閲覧数:351 投稿日:2019-12-02 更新日:2019-12-02 

シェルスクリプト


英語表記
shell script

シェルスクリプトとは?


オペレーティングシステムのシェルまたはコマンドラインインタプリタ向けに書かれたスクリプト
・Linux上のコマンドを制御するプログラミング言語が記述されたファイル
・ファイル名は任意だが、拡張子は必ず .shにする
・また、改行コードは必ずLFで保存
※Windows のメモ帳では改行コードは CR+LF になってしまう

簡単に言うと?
Unixコマンドなどを順番に実行する

Windows環境との比較


比較一覧表
- Linux Windows
ファイル シェルスクリプト バッチファイル
ファイル拡張子 .sh .bat


シェルスクリプト1行目 /「/bin/sh」は「bash」のシンボリックリンク /「/bin/sh」と「/bin/bash」の違い

 閲覧数:477 投稿日:2019-12-02 更新日:2019-12-03 

シェルスクリプト1行目


「実行時に使用するインタプリタ」を必ず指定する必要がある

shebang
#!で始まる1行目の記述をShebangと呼ぶ
※「"#"を用いた行」はそれ以降コメントアウトとみなされるが、「#!で始まる1行目」はそれとは異なり特別な意味を持つ

一般的には
#!/bin/shと書く
※Unix系の多くの環境で実行可能だから

「/bin/sh」は「bash」のシンボリックリンク


「/bin/sh」を実行する
→「/bin/bash」が実行される
※「/bin/bash」は「bash」シェルの本体ファイル

CentOS7環境で確認してみる
$ ls -l /bin/sh
lrwxrwxrwx. 1 root root 4  9月 14  2016 /bin/sh -> bash


「/bin/sh」と「/bin/bash」の違い


何れを指定しても「bash」シェルとして実行されるが、
同じ「bash」シェルでも、起動経緯により、挙動は微妙に異なる

挙動の違い
エラー発生した時点で処理が止まるか最後まで進むか、など

sh という名前で bash を起動すると 、 sh の起動動作をできるだけ真似しようとする
$ man bash
sh という名前で bash を起動すると、 bash は古くからある sh の起動動作をできるだけ真似しようとします。また POSIX
標準にもできるだけ従おうとします。


「bash」起動させる「shebang」記述の結論

 閲覧数:361 投稿日:2019-12-02 更新日:2019-12-02 

「bash」起動させる「shebang」記述の結論


bash特有の機能を使用したい時以外は、「/bin/bash」ではなく「/bin/sh」指定でbashを呼び出す方が無難
・移植性が高くなるから
※他の環境でシェルスクリプトを動作することが容易

/bin/sh と /bin/bash の違い
bash



シンボリックリンク

GNU

コメント投稿(ログインが必要)