シェルスクリプトオプションの実行

シェルスクリプトオプションの実行

私は通常cd Directory/Directory/シェルディレクトリを指して入力するのに慣れていますbash shell.shが、1行でシェルと場所を実行するより簡単な方法があるかどうか疑問に思います。私は他のフォルダに頻繁に移動します。

例: alpha というシェルスクリプトを含む unix フォルダ

cd Desktop/unix
bash alpha.sh

答え1

スクリプトファイルを実行可能にする場合:

chmod o+x alpha.sh

#!/bin/bash呼び出しに使用する必要がない適切なshebang()を一番上に含めますbashman chmod説明については、リファレンスをo+x参照してくださいa+x

パスは、Rahulが提案したように追加したり、$ PATHに追加することなく同様のことを行うことができます。たとえば、次のようになります。

export SCRIPTS=~/Desktop/unix

これで、次の実行可能ファイルのいずれかを使用できます。

$SCRIPTS/alpha.sh

答え2

PATHこれはシステム環境で設定できます。

export PATH=$PATH:/absolute/path/Desktop/unix

上記の行をファイルに入れることもできます。~/bashrcその後、パスをリセットする必要はありません。

注: - スクリプトはその場所で実行可能である必要があり、その後すべてのディレクトリでスクリプトを実行できます。

引用するこれ詳細はページ

答え3

他の観点から答えると、*nix環境をよりよく理解するのに役立ちます。

* nuxで認識されているすべてのコマンド/ユーティリティは、一部または他のディレクトリに存在し、またはwhereisコマンドwhichを使用して見つけることができます。

はい

$ which ls
/bin/ls
$ which sort
/usr/bin/sort

それでは、コマンドを実行したいターゲットをどのように見つけることができますか?

答えはPATH変数です。を実行すると、コロンで区切られたディレクトリのリストがecho $PATH表示されます。:

$ PATHの出力例

/home/mtk/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/var/lib/gems/1.9.1/bin/:/usr/local/ant/apache-ant-1.8.3/bin

したがって、実行可能ファイルをこれらの場所の1つに配置すると、他のシステムコマンドのように実行できます。PATHあるいは、シェル全体で使用できるように変数に追加してエクスポートして、このリストに独自のディレクトリを追加することもできます。

export PATH=$PATH:/home/mtk/myUtilities/bin

.bashrcシェルを起動するたびに上記のコマンドを実行する必要がないように、この特定の行をファイルに追加できます。

楽しく

変数を変更して空にしておくと、適切にリセットされるPATHまで無駄なシェルが作成されます。PATH

$ export PATH=""
$ ls
bash: ls: No such file or directory
$ which pwd
bash: which: No such file or directory

関連情報