回答:
定義上、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デバッグに使用します。)