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

cd ` (バックティック) の目的は何ですか?

入力したものはバックティックです。これは、コマンドとして入力したものを評価するために bash する命令の始まりです。 > が表示され、次の行にまだコマンドを入力していることを示します。

バックティックを閉じると、コマンド全体が実行されることがわかります。例

~$ cd `
> echo /var`
/var$

JohnC の回答では、すでにバックティックについて説明しています。しかし、あなたが疑問に思っているのは > です 促す。これは継続プロンプトであり、バックティックによってトリガーされるだけでなく、常に コマンドの入力が完了していないことをシェルが明確に認識している場合。最も簡単な例は、明示的な行継続 \ を置くことです 入力行の最後 (長い入力を分割するのに役立ちます):

$ echo \
> hallo

PS1 と同じように注意してください コマンド プロンプトの外観を制御します。PS2 を設定することもできます 継続プロンプトを変更します。例:

$ export PS2="(cont.) "
$ echo \
(cont.) hallo

継続する理由はたくさんあります。単一のバッククォートは不完全ですが、次のようなものを入力することもできます

ls -l `which cp`

1 行で (補足:$( を使用することをお勧めします) と ) 代わりに、括弧は展開の開始点と終了点を明確にしますが、単一のバッククォートはどこが欠けているかを確認するのをより困難にします.そしてネスト...)。継続プロンプトのその他の考えられる理由:

  • 欠落している done while以降 または for
  • 欠落している fi if の後
  • 欠落している esac caseの後
  • 閉じ括弧の欠落。サブシェル内 (cd $HOME; cat .bashrc)
  • | をパイプした後のコマンドの欠落 条件付き実行 || そして && (& ではありません ただし、これはコマンドをバックグラウンドで実行しているだけなので)
  • 最後の引用符がありません (' または " )

不思議なことに、括弧 } がありません 変数展開後 ${ 継続プロンプトも表示されますが、スペースが挿入されているために失敗します:

$ echo ${
> PS2}
bash: ${
PS2}: bad substitution

これは、コマンドがまだ完了していないことを意味します。実際、文字バッククォート ` 、インライン コマンドを区切るために使用されます。

例:

cd /tmp # Go to /tmp
pwd # Prints the current working  directory
ls `pwd` # Lists the content of the current working directory

Linux
  1. 「インストール」コマンドの目的は?

  2. ハッシュコマンドの目的は?

  3. 「mysql.sys@localhost」ユーザーの目的は何ですか

  1. Linuxでの.bashrcファイルの目的は何ですか

  2. Ubuntu のツリー コマンドとは何ですか?

  3. Windows での Linux の ~ (チルダ) に相当するものは何ですか?

  1. Linux での export コマンドの役割は何ですか?

  2. hostnamectl コマンドのポイントは何ですか?

  3. 逆引き DNS コマンド ライン ユーティリティとは何ですか?