コマンドで見つかったすべてのフォルダが次の定義を使用して作成されるように、ディレクトリ内のフォルダを検索するdir0
bashスクリプトを作成する方法はありますか?dir1
dir0
dir1-command
dir1-command() {
cd dir0/dir1
echo "inside dir0/dir1"
cd -
}
編集する:私が解決しようとしている具体的な問題は次のとおりです。と同じサブフォルダをscripts
含むフォルダがあります。たとえば、起動方法は次のとおりです。scripts/haskell_script1
scripts/haskell_script2
scripts/haskell_script1
haskell_script1() {
cd scripts/haskell_script1
stack exec haskell_script1 -- $@
cd -
}
だから私がしたいのは、~/.bashrc
ソースが見つかるたびにフォルダをスキャンし、scripts
さまざまなフォームコマンドを生成してhaskell_scriptX
時間を節約することです。これにより、私が作成するすべてのHaskellプロジェクト/フォルダフォルダに対してコマンドを手動で作成する必要がなくなります。
ベストアンサー1
.bashrcに以下を追加します。
for script in scripts/haskell_script*
do
# strip off the leading "scripts/" portion
script=${script##*/}
eval "function ${script} {
cd scripts/${script}
stack exec ${script} -- \$@
cd -
}"
done
その定義で早期に評価される可能性があるeval
すべての項目に注意する必要があります。これが$
私がから脱出する理由です$@
。