対話型bashシェルの状態にアクセスするスクリプトを作成したいと思います。たとえば、スクリプトには、jobs
などdirs
のpushd
コマンドが含まれていますpopd
。だから私の戦略は、source
スクリプトを実行するときにスクリプトをシェルに入れることです。しかし、私はsource
これをどれだけ早く悟るかに応じて、しばしばこれを忘れてしまい、しばらく混乱します。はい、私は直接スクリプトを書いた。
私のような物忘れの激しい人々のためのベストプラクティスはありますか?たとえば、次のいずれかの良いアイデアがありますか?
source
たとえば、どのような方法でスクリプト自体を変更して、入力なしでスクリプトを実行することができますか?スクリプト自体で
source
これを思い出させるにはどうすればよいですか?例えば、- プレフィックスを使用して
Source_Me
スクリプトファイルの名前を変更しますか? source
それともスクリプトが呼び出されたかどうかを検出し、そうでない場合はエラーメッセージを出力するためにスクリプト内に使用されるいくつかのコマンドがありますか?
- プレフィックスを使用して
それとも、どのスクリプトがこれを必要とするのかを覚えておく必要がありますか
source
?ありがとうございます。
ベストアンサー1
それを得ると、実行ビットは必要ありません。
スクリプトを実行可能にしないでください。その後、(取得せずに)実行しようとすると実行(Permission denied
)されないため、効果はありません。 PATH環境にある場合、完成可能シェル(bash ...)はタブを使用して自動補完を試みません。
.profile
これで、次のエイリアスを追加できます.bashrc
。
alias myscript='. /path/to/myscript'
したがって、これから入力すると、myscript
その内容を取得して期待どおりに実行します。シェルは別名を自動補完します。