2016-12-27 8 views
2


私は私の質問に答えられなかったかもしれません。正しく質問する方法がわからないので、事前にお詫びします。
私は、例えばbashスクリプト内のコマンドのチェーンを実行しようとしています:Linux - CLIプログラムを使用してコマンドを実行する

run mysql > type help > exit 

[email protected]:# mysql 
mysql> help 
mysql> exit 
[email protected]:# 

どのように私はbashスクリプトでこれを達成することができますか?

私はオペランドを試しました| |、& &;このすべて:例:

#!/bin/bash 
mysql || help || exit 

動作しませんでした。相互にコマンドを実行します。

+0

複数のMySQLコマンドを順番に実行したいのですか? –

答えて

6

あなたはそれがファイルであるかのようにコマンドが読み込まれますいくつかのテキストを、渡すためにヒアドキュメントを使用することができます。bashにあなたは配管と同様の効果を達成herestringを、使用することができ、また

mysql <<EOF 
help 
exit 
EOF 

任意の追加のサブシェルを作成せずに、標準入力上のコマンド:それはとにかく入力がなくなるとmysqlが終了するようexitは、本当に必要ではありません

mysql <<< $'help\nexit' 
# or on other shells 
printf 'help\nexit\n' | mysql 

注こと。

3

次のことを試してみてください。

mysql << EOF 
help 
exit 
EOF 

これは、mysqlコマンドを起動しますそして効果的に直接

2

それらを入力するのと同じであるMySQLの標準入力にパイプヘルプおよびexitコマンドをそれは何」のように聞こえますもう一度やってみると、いくつかのMySQLコマンドを順番に実行しています。

他の人が述べたheredocアプローチは、シェルスクリプトで行う方法です。

多分、同じMySQLコマンドをコマンドラインから実行したいだけです。もしそうなら、MySQLコマンドラインツールはデフォルトの引数として、helpなどのコマンドを含むファイルと他のSQLコマンドを取ります。

  1. ファイル(myfile.sqlセイ)、編集内容を作成します。

    help 
    select * from mytable 
    
  2. 保存MySQLへ

  3. パスファイルファイル:なしがあります

    mysql myfile.sql 
    

を電話する必要がありますexit

関連する問題