![プログラムの起動後にプログラムに2つのパラメータを自動的に提供するにはどうすればよいですか? [コピー]](https://linux33.com/image/84289/%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%A0%E3%81%AE%E8%B5%B7%E5%8B%95%E5%BE%8C%E3%81%AB%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%A0%E3%81%AB2%E3%81%A4%E3%81%AE%E3%83%91%E3%83%A9%E3%83%A1%E3%83%BC%E3%82%BF%E3%82%92%E8%87%AA%E5%8B%95%E7%9A%84%E3%81%AB%E6%8F%90%E4%BE%9B%E3%81%99%E3%82%8B%E3%81%AB%E3%81%AF%E3%81%A9%E3%81%86%E3%81%99%E3%82%8C%E3%81%B0%E3%82%88%E3%81%84%E3%81%A7%E3%81%99%E3%81%8B%EF%BC%9F%20%5B%E3%82%B3%E3%83%94%E3%83%BC%5D.png)
MySQLデータベースの新しいテーブルを起動して作成するために、Ubuntuでうまく機能する次のスクリプトがあります。
echo "CREATE DATABASE database_name" | mysql -u root -p
このコマンドを実行した後、MySQLはパスワードを要求します。
唯一の問題は、放浪設定bashスクリプトでこれを実行したいので、パスワード入力プロセスを自動化する必要があることです。デフォルトでは、次のようにMySQLプログラムに入力ラインを提供する必要があります。
Enter password: password_goes_here
データベース生成コマンドとパスワードをテキストとしてプログラムに入力するプロセスをどのように統合できますか?
答え1
この特定の問題の最も簡単な解決策は、次のようにコマンドパラメータにパスワードを提供することですmysql
。
echo "CREATE DATABASE database_name" | mysql -u root --password=your_password
これは要求する前にmysqlにパスワードを提供します。
答え2
@アマチュアプログラマーの答えいいですね。しかし、1つだけ追加したいと思いました。誰かがパスワードを実行するときにパスワードが公開されることを心配している場合は、次ps auxwww
の環境変数を使用してMySQLにパスワードを提供することもできますMYSQL_PWD
。
mysql> set password for 'will@localhost' = PASSWORD('test');
Query OK, 0 rows affected, 1 warning (0.01 sec)
$ export MYSQL_PWD=test
$ mysql -uwill@localhost
Welcome to the MySQL monitor.
このオプションとは異なるオプションについて説明します。MySQLドキュメントから。