sh は、Unix 系システムで利用される 標準シェル (Bourne Shell) を指します。
POSIX に準拠した基本的なコマンド解釈・スクリプト実行環境であり、シンプルなスクリプトの移植性を高めるために使われます。
Linux では実装によって bash, dash, ksh などへのシンボリックリンクになっていることが多いです。
構文(Syntax)
sh [オプション] [スクリプトファイル] [引数...]
主なオプション一覧
| オプション | 説明 | 使用例 |
|---|---|---|
| (なし) | 対話型シェルを起動 | sh |
<file> | 指定スクリプトを実行 | sh script.sh |
-c "コマンド" | 文字列のコマンドを実行 | sh -c "echo hello" |
-i | 対話型シェルを強制 | sh -i |
-s | 標準入力からスクリプトを読み込む | `echo “echo hi” |
-n | 構文チェックのみ実行 | sh -n script.sh |
-x | 実行するコマンドを表示(デバッグ用) | sh -x script.sh |
--version | バージョンを表示(実装依存、利用できない場合もあり) | sh --version |
実行例
対話型シェルを起動
sh
スクリプトを実行
sh hello.sh
コマンドを一度だけ実行
sh -c "echo Hello from sh"
出力例:
Hello from sh
標準入力からスクリプトを実行
echo "echo hi" | sh -s
出力例:
hi
スクリプトをデバッグ実行
sh -x script.sh
出力例:
+ echo Start
Start
+ ls
file1.txt file2.txt
構文チェック
sh -n script.sh
エラー例(存在しないスクリプト)
sh notfound.sh
出力例:
sh: 0: cannot open notfound.sh: No such file
関連コマンド
bash: GNU 拡張を含む高機能シェル。dash: Debian/Ubuntu 系でshの実体となることが多い軽量シェル。zsh: 高機能でユーザーフレンドリーなシェル。
備考
shは 移植性重視のスクリプト に利用され、POSIX 準拠コマンドだけを使うことで異なる環境でも動作しやすくなります。- 多くの Linux では
/bin/shがbashかdashへのリンクになっています。 - スクリプトの先頭には
#!/bin/shと書くことで、どの環境でも標準的なシェルで実行できるようにするのが一般的です。

コメント