sh – POSIX 標準シェル

端末・シェル

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/shbashdash へのリンクになっています。
  • スクリプトの先頭には #!/bin/sh と書くことで、どの環境でも標準的なシェルで実行できるようにするのが一般的です。

参考

Bash玄

はじめまして!Bash玄です。

エンジニアとしてシステム運用に携わる中で、手作業の多さに限界を感じ、Bashスクリプトを活用して業務を効率化したのがきっかけで、この道に入りました。「手作業は負け」「スクリプトはシンプルに」をモットーに、誰でも実践できるBashスクリプトの書き方を発信しています。

このサイトでは、Bashの基礎から実践的なスクリプト作成まで、初心者でもわかりやすく解説しています。少しでも「Bashって便利だな」と思ってもらえたら嬉しいです!

# 好きなこと
- シンプルなコードを書くこと
- コマンドラインを快適にカスタマイズすること
- 自動化で時間を生み出すこと

# このサイトを読んでほしい人
- Bashに興味があるけど、何から始めればいいかわからない人
- 定型業務を自動化したい人
- 効率よくターミナルを使いこなしたい人

Bashの世界に一歩踏み出して、一緒に「Bash道」を極めていきましょう!

Bash玄をフォローする

コメント