私は、新しいユーザーを作成するために、bashスクリプトからMySQLのクエリを実行したい:bashでドット置換を無効にするにはどうすればいいですか?
の$ BUILD変数は、例えば15のため、数に設定され、最終的なクエリは次のようになりますmysql -u root -p$dbpass -e "GRANT ALL PRIVILEGES ON appdb_${BUILD}.* TO [email protected] IDENTIFIED BY 'somepass'"
:
mysql -u root -p$dbpass -e "GRANT ALL PRIVILEGES ON appdb_15.* TO [email protected] IDENTIFIED BY 'somepass'"
スクリプトがあり、データベースと同じ名前のtarアーカイブがある実行されるため、クエリのディレクトリに
しかし...は次のように次のようになります。
mysql -u root -p$dbpass -e "GRANT ALL PRIVILEGES ON appdb_15.tar.gz TO [email protected] IDENTIFIED BY 'somepass'"
私はこれが起こると思いbecau一致がありますが、ファイル名を変更することはオプションではありません。他のディレクトリへのスクリプトの移動も許可されていません。
バックスラッシュ(appdb_${BUILD}\.*
)でドットをエスケープしようとしましたが、何も変更されませんでした。
どうすれば修正できますか?
から15に、ビルド変数を変更それはあなたがエスケープする必要がある点ではないのですが、それはアスタリスクです。なぜそれがドットだと思いましたか?これは正規表現ではありません。 –
また、アスタリスクは二重引用符で通常は展開されません。 – choroba
@SergioTulentsevまあ、私の頭に来たのは、アスタリスクではなくドットについて考えた理由は分かりません。多くの正規表現に私は推測する。とにかく、アスタリスクをエスケープした後、mysqlは '\ *'が何であるかを理解していないと文句を言います... – WombaT