スクリプトがあるとしましょう。
chmod +x myscript
今これを実行するために私は行きます
./myscript
しかし、タイプするだけで実行できる方法はありますか
myscript
???
私は同じ問題を抱えていて、今のところ明確に質問に答えるまで答えはないようです。
質問の解決策は、export PATH=.:$PATH
を.bash_profile
に追加することです。これには、コマンドの検索中にunix検索パスへの現在のディレクトリが含まれます。また、そうすることの セキュリティリスク について自分自身に通知することも賢明です。
スクリプトが配置されているディレクトリのパスをPATH変数に追加します。
export PATH=$PATH:/path/to/directory
export PATH=/path_to_folder_containing_executable/:$PATH
新しいターミナルを開くたびにそれを実行したくない場合は、その行を~/.bashrc
にいつでも追加できます。
幸運を!
/ bin /、/ usr/binなどにスクリプトファイルのシンボリックリンクを作成します。
ln -s /path_to_script/myscript /usr/bin/myscript
スクリプトをホームディレクトリのbin
ディレクトリである~/bin
に配置します。次に、~/bin
がPATH
に追加されていることを確認します。すでにある可能性があります(ただし、ログアウトして再度ログインする必要がある場合があります)。
PATHを変更して.
を含めることができますが、これは危険です。セキュリティ上の問題が発生する可能性があります。例えば。
最も明白です。 最初に.
を調べるようにPATHを設定した場合:ディレクトリa
に実行可能ファイルls
があり、何か悪いことをしている場合。次にcd a; ls
と入力します。その後、何か悪いことが起こります。
思い出すのは便利な場合だけです。最後に.
を調べるようにPATHを設定した場合:次にtest
というプログラムを作成しますが、実行しても何も起こらないようです(これは、優先度の高いtest
を実行しているためです。出力はなく、終了コードのみです)。新しいソフトウェアがインストールされている場合、この新しいソフトウェアがプログラムをマスクする可能性もあります(ただし、これはPATHの最後に~/bin
を付けることと同じです)。
自宅にディレクトリを作成する必要があります。PATHの最後に~/bin
、PATHの最初に~/bin/override
。 〜/ bin/override`はほとんど空です。
これより前に投稿された他のすべての回答は正しいです。 (ただし、~/.bashrc
について言及していないものは、その点で不完全です。)ただし、それらを使用したくない場合は、次の方法があります。
タイプ:
alias myscript="/path_to_folder_containing_executable/myscript"
または
myscript() { /path_to_folder_containing_executable/myscript "$@"; }
2番目の関数(「シェル関数」と呼ばれます)は入力できます
myscript() {
/path_to_folder_containing_executable/myscript "$@"
}
必要に応じて。これらはすべて、myscript
が、シェルが$PATH
を調べる前にチェックされる特別なタイプのコマンドであると定義しています。
他の回答のexport
コマンドと同様に、これらは現在のシェルセッションにのみ影響します。効果を持続させるには、コマンドを~/.bashrc
に入れます。