見つかったディレクトリに基づいてコマンドを追加する

見つかったディレクトリに基づいてコマンドを追加する

コマンドで見つかったすべてのフォルダが次の定義を使用して作成されるように、ディレクトリ内のフォルダを検索するdir0bashスクリプトを作成する方法はありますか?dir1dir0dir1-command

dir1-command() {
 cd dir0/dir1
 echo "inside dir0/dir1"
 cd -
}

編集する:私が解決しようとしている具体的な問題は次のとおりです。と同じサブフォルダをscripts含むフォルダがあります。たとえば、起動方法は次のとおりです。scripts/haskell_script1scripts/haskell_script2scripts/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すべての項目に注意する必要があります。これが$私がから脱出する理由です$@

おすすめ記事