web-dev-qa-db-ja.com

コマンドラインでの矢印( "->")記号の意味は?

私はターミナル(Mac OS X)で作業していますが、これはLinuxの組み込み部分だと思います。コマンドを実行すると、Terminalが->だけの新しいインデントされた行を返すことがあります。何かを待っているようですが、自分で行動が必要かどうかはわかりません。 Enterキーを押すと、別の同じ行が返されます。 Ctrl + Cの場合、Abortedと表示されます。これは、何かが明らかに処理されていることを意味します。これは何を意味するのでしょうか?たとえば、次のとおりです。

$ mysql -u root -h Host -p
Enter password:

Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is X
Server version: 5.1.39-log MySQL Server

Type 'help;' or '\h' for help. Type '\c' to clear the buffer.

mysql> mysqldump my_database
    -> 
    -> [Ctrl + C]
    -> Aborted
$

編集:これはコマンドの構文に誤りがあるようですが、それが矢印の理由かどうかはわかりません。

6
Josh Leitzel

MySQLコマンドラインツールでは、ツールは入力が次の行に続くことを期待しています。ここでは、宛先パスを待機しています。

一般的な「完全な」SQLコマンドは、コマンドラインでサポートされているインデントを使用して記述されます。あなたは次のようなことを言うでしょう

SELECT
    `users`.*
FROM
    `users`
WHERE
    `users`.`is_active` = 1 AND
    `users`.`age` < 13
ORDER BY
    `users`.`username`
11
Florian Diesch

矢印はインタラクティブな継続プロンプトです。未完了のコマンドを入力すると、SQLシェル(mysqlコマンドによって呼び出されます)が残りのコマンドを待機します。

この特定のケースでは、SQLシェルはmysqldumpの宛先パスを待機しています。

また、コマンドをセミコロンで終了するまで、コマンドは完了しません。 (@MrStaticに感謝)

7
ghoppe

確かに構文エラーがあります。 SQLコマンドはセミコロンで終了する必要があります。例えば:

mysqldump my_database;
2
Arun Veer Singh

MariaDBを使用する場合、mysqldumpはmysqlコマンドではありません。バッシュで実行します。

$ mysqldump -u root -h Host -p ### my_database > dump.sql

より正確に使用するには、mysqldump --helpを実行します。

0
Jehong Ahn