私は通常cd Directory/Directory/
シェルディレクトリを指して入力するのに慣れていますbash shell.sh
が、1行でシェルと場所を実行するより簡単な方法があるかどうか疑問に思います。私は他のフォルダに頻繁に移動します。
例: alpha というシェルスクリプトを含む unix フォルダ
cd Desktop/unix
bash alpha.sh
答え1
スクリプトファイルを実行可能にする場合:
chmod o+x alpha.sh
#!/bin/bash
呼び出しに使用する必要がない適切なshebang()を一番上に含めますbash
。man 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