のうち、外部プログラムのためのコマンドラインフラグを構築ファイルから読み込み、常に同じ長さになるわけではないので、以下のようなハードコーディングは機能しません)。私は例</p>(実際には、そのリストが固定されていない <pre><code>IGNORES=('post_install.sh' 'dummy') </code></pre> <p>ため、<code>stow</code>によって無視されるしたいファイル名の配列を持っているbashの配列
私はしかし、無視はストウで
stow -v "${IGNORES[@]}" -t $home $pkg
を尊敬していないけど、それは無効な引数文句はありませんので、
IGNORES=("${IGNORES[@]/#/--ignore=\'}")
IGNORES=("${IGNORES[@]/%/\'}")
ような配列のうち、コマンドラインフラグを形成どちらか。直接書き込み
stow -v --ignore='post_install\.sh' --ignore='ignore' -t $home $pkg
でも動作します。
--ignore
フラグを渡すこれらの2つの方法の違いは何ですか、問題を解決する方法はありますか?私の理解では、"${IGNORES[@]}"
は、配列要素ごとに1ワードと評価し、意図した効果があるはずです(引用符を取り除き、配列を*
でインデックスしようとしましたが、役に立たない)。
ありがとうございます!記事を書きながら
'post_install.sh'の' .'をエスケープすることは不要ですが、ファイル名を引用符で囲まなければ無害です。引用符の中に、名前にリテラル・バックスラッシュを追加します。 – chepner
それは私が確認する必要があるもう一つのことです。 'man stow'は名前がファイル名の末尾にマッチする必要があるperl正規表現として解釈されるので、正しいパターンを得るためにドットをエスケープする必要があると思います文字を含む文字ですが、それは本当に私が望むものではありません)。 – Wisperwind
ああ、そうです。 – chepner