回答:
定義上、GNU Bashのブレース展開には、シーケンス式または一連のコンマ区切り値のいずれかが必要です。
中括弧で展開されるパターンは、オプションのプリアンブルの形式を取り、一連のコンマ区切り文字列または中括弧のペア間のシーケンス式の後にオプションのポストスクリプトが続きます。
あなたはできるマニュアルを読むの詳細については。
echo {subfolder1}
{subfolder1}
echo {subfolder1,subfolder2}
subfolder1 subfolder2
echo subfolder{1}
subfolder{1}
echo subfolder{1..2}
subfolder1 subfolder2
{subfolder1}
{subfolder1}
代替手段がないため、と評価されます。subfolder1
代わりに使用してください。
csh
(ブレースの展開元)、tcsh
またはとは異なることに注意してくださいfish
。
ブレースは、{abc、def}などのコマ区切り文字列や、{a..e}などの範囲が指定されている場合にのみ展開されます。
あなたの場合は、サブフォルダ1を書く必要があります。
cat ./{mainfolder1,mainfolder2,mainfolder3}/subfolder1/book.txt > out$var
/path/{a,}/filename
展開されますが、これは望ましくない場合があります。/path/a/filename
/path//filename
ambiguous redirect
引用符で囲まれていない値のない変数(たとえば)で指定されたファイルにリダイレクトしようとすると取得されますecho 'hello' >$idontexist
。
> *.txt
、複数持つ.txt
ファイル、または> $file
場合は、$file
空白文字が含まれています。しかし、もちろんあります与えることにあいまいな何もcat
複数の引数を
echo
代わりにcat
を使用して、取得したコマンドラインを確認します。(またはset -x
デバッグに使用します。)