GNU/Linux >> Linux の 問題 >  >> Linux

パターン マッチが bash スクリプトで機能しない

extglob を有効にしない限り、グロビングはそのようには機能しません シェルオプト。代わりに find を使用することをお勧めします :

find . -maxdepth 1 -not -name '<NAME>' -or -name '<NAME>' -delete

-delete でこのコマンドを実行する前に 出力が正しいことを確認してください


デフォルト設定で外部 proc を使用しない方法:

for f in *; do [[ $f =~ ^file[12]$ ]] || echo "$f"; done

使用しようとしている拡張グロブ構文は、デフォルトではオフになっています。使用する各スクリプトで個別に有効にする必要があります。

shopt -s extglob

スクリプトでは ls を使用しないでください ただし、ここでは単なるプレースホルダーとして使用していたと思います.


Linux
  1. [a-z]がBashの小文字と一致するのはなぜですか?

  2. BashスクリプトのRmコマンドは変数では機能しませんか?

  3. Bash:子スクリプトが SIGINT をトラップするときに親スクリプトが SIGINT で終了しないのはなぜですか?

  1. bashスクリプトで set -e とはどういう意味ですか?

  2. Bash スクリプトのパターン マッチング

  3. ssh-copy-id が機能しない

  1. Acer Aspire でタッチパッドが機能しない

  2. 自動リピートが機能しない

  3. <( cmd ) パターンは bash でどのように機能しますか?