schema_dir=schema_app
for SCHEMA_CHANGE in $schema_dir/*
do
したがって、私のpwdにはサブディレクトリ(など)/A/B/C/scripts
があります。最初にスクリプトに渡したパラメータに応じて、各ディレクトリのファイルを繰り返すforループが必要です。schema_app
schema_data
私はここで何を間違えましたか?なぜなら(ファイル名)をエコーするとSCHEMA_CHANGE
以下のように表示されるからですschema_app/filename
。どうやってここまでしか行けませんかfilename
?
答え1
あなたは何も間違っていませんでした。schema_app/filename
ファイルの正しいパスです。ファイルを処理するためにコマンド(またはリダイレクト)に渡す必要があるもの。それ自体は機能しませんfilename
。コマンドはどのファイルがどのディレクトリにあるかをどのように知ることができますか?
何らかの理由でディレクトリ部分なしでファイル名が必要な場合は、次のものを使用できます。
"${SCHEMA_CHANGE##*/}"
これは変数の値を取得してSCHEMA_CHANGE
最後の部分まで削除するため/
(または値がない場合は値を変更せずに残すため/
)、ディレクトリ部分なしでファイル名を取得します。