名前の前に ./ を付けずにスクリプトを実行する

名前の前に ./ を付けずにスクリプトを実行する

ディレクトリを変更し、他の多くのコマンドを実行する非常に複雑なスクリプトを実行しています。これらのコマンドはすべて「scriptname」を使用して実行されます。これは、ターミナルからメイン スクリプトを実行するときに正常に機能します。ただし、サーバーに ssh してそこからメイン スクリプトを実行しなければならない場合があり、各コマンドの前に ./ がないため失敗します。

すべてのスクリプトと実行可能ファイルを調べてコマンドに ./ を追加するのは避けたいのですが、この問題を解決する別の方法はありますか?

答え1

この動作を変更するには、PATH環境変数に追加することなどいくつかの方法があります./が、これは環境に重大なセキュリティリスクをもたらします。スクリプトの記述方法は非常に間違っており、正しい解決策は、スクリプトをすべて調べて、ローカルスクリプトの呼び出し方法を修正することです。これは、将来的に余分な問題を引き起こしたり、セキュリティ上の問題を引き起こしたりしない唯一の適切な修正です。これはあなたが望んでいることではないことはわかっています。望んだ聞きたいことは聞くが、勇気を出して正しく実行しなければならない。

答え2

スクリプトが/opt/housekeeping/binの下にある場合は、以下を追加することをお勧めします。

export PATH=$PATH:/opt/housekeeping/bin  

.bash_profile または .profile または使用するログイン スクリプトに追加し、それらのスクリプトにも 755 権限が設定されていることを確認します。

答え3

スクリプトのエイリアスを作成できます:

alias scriptfile="./scriptfile"

関連情報