CentOS 7シェルスクリプトインタプリタ

CentOS 7シェルスクリプトインタプリタ

CentOS 7で実行されるシェルスクリプトの作成を開始しました。どの通訳者を呼び出す必要があり、shebang行はどのような外観であるべきですか?

私はこれを試しました:

#!/bin/sh  

しかし、と入力するとcd /bin何百ls -alものサブディレクトリが表示され、それらのshどれを使用する必要がありますか?このスクリプトはいくつかのMavenコマンドを実行します。

ベストアンサー1

実際、CentOS 7はほとんどのLinuxディストリビューションで提供されるデフォルトのシェルである/bin/shシンボリックリンクです。/bin/bash

$ ls -l /bin/sh
lrwxrwxrwx 1 root root 4  9 febr. 08:21 /bin/sh -> bash

(上記のコマンドが を返すと、正しいことになりNo such file or directoryます。問題があるはずです。次に実行してwhich sh正しいパスを知ることができます)

したがって、あなたの出力が私と同じであれば、#!/bin/shとを使用する#!/bin/bashことは同じです。

代わりに、次のshebangを使用できます:#!/usr/bin/env shまたは#!/usr/bin/env bash。この場合、sh設定された場所や場所に関係なく、PATHで最初に使用可能なもの、または何でも実行されます。移植性は便利ですが、PATHで指定された実行可能ファイルが複数ある場合はセキュリティ上の問題が発生する可能性があることに注意してください。bashsh/bin/usr/binsh

おすすめ記事