数週間前にこの問題が発生しましたが、システムの問題であると思いました。しかし、いくつかの調査を行った後、これはバグかもしれないと思います。それとも私が間違っている可能性があります。たとえば、CentOS7で複数のファイルを実行またはecho
操作しようとすると、CentOS7でこれを実行すると返されますが、RHEL7で同じコマンドを実行すると次のものが返されます。touch
echo file{a..c}.txt
file{a..c}.txt
filea.txt fileb.txt filec.txt
他の人も同じ問題がありますか?
ベストアンサー1
CentOSシステムのシェルが次のように中括弧の範囲を拡張しない場合は、dash
この動作を確認できます。
$ for shell in bash dash ksh
> do
> echo in $shell:
> $shell -c 'echo file{a..c}.txt'
> done
in bash:
filea.txt fileb.txt filec.txt
in dash:
file{a..c}.txt
in ksh:
filea.txt fileb.txt filec.txt
コメントからCentOSシステムでzshを使用します。シェルオプションを設定して動作を再現できますignorebraces
。
$ set -o|grep ignorebraces
ignorebraces off
$ echo {1..3}
1 2 3
$ set -o ignorebraces
$ echo {1..3}
{1..3}
$ set +o ignorebraces
$ echo {1..3}
1 2 3