web-dev-qa-db-ja.com

shを暗黙的に呼び出さずにシェルスクリプトを実行する

シェルスクリプトにつながる「リンク」をusr/bin(つまり)に作成できるかどうか疑問に思いました。

でも書きたいだけ

% shellscript

の代わりに

% sh shellscript.sh

エイリアスのようなものです。

これは可能ですか?

24
ShoX

スクリプトの最初の行を作成します

#!/bin/sh

次に、次のコマンドを入力して実行可能にします。

chmod +x shellscript.sh

ここで、システムの[〜#〜] path [〜#〜]変数にあるbinフォルダーにスクリプトを配置すると、スクリプトを直接実行できるようになります。パス内のフォルダを表示するには、次のように入力します。

echo $PATH

私は通常、システム上の他のユーザーの邪魔にならないように、自分が作成したスクリプトに/home/[my username]/binを使用します。すべてのユーザーが利用できるようにしたい場合は、ほとんどのディストリビューションで空で提供されている/usr/local/binを使用します。

スクリプトのファイル名の末尾にある.shは、ファイルの種類を思い出すのに役立つ単なる規則です。たとえば、名前をshellscriptに変更しても機能します。これにより、要件が満たされます。

46
rjmunro

シェルスクリプトを実行可能にすることができます(chmod +x shellscript.sh)。次に、/ usr/binからリンクできます(ln -s shellscript.sh /usr/bin/shellscript)。

15
Jeff

はい。 lnを使用して、shellscriptという名前のshellscript.shへのリンクを作成できます。次に、実行可能にする必要がありますが、その後(/usr/binがパス上にあると仮定して)、shellscriptを使用して実行できます。

2
VeeArr

他の人が示唆しているように、スクリプトを実行可能にして/ usr/binにリンクすることに加えて、スクリプトの先頭に「Shebang」行を追加することもできます。

#!/bin/sh

# your commands here

これにより、スクリプトの実行に使用するシェルインタープリター(bash、bourne Shell、c-Shell、Perl、python ...)を指定できます。

2
Jim Lewis