GNU/Linux >> Tutoriels Linux >  >> Linux

Quel est le but de cd ` (backtick) ?

Ce que vous avez tapé est un backtick - c'est le début d'une instruction à bash pour évaluer ce que vous tapez en tant que commande. Le > s'affiche pour indiquer que vous saisissez toujours la commande sur la ligne suivante.

Si vous fermez le backtick, vous constaterez que toute la commande s'exécutera. Par exemple

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

La réponse de JohnC explique déjà le backtick. Mais ce que vous vous demandez également, c'est le > rapide. Il s'agit d'une invite de continuation, et elle n'est pas seulement déclenchée par un backtick, mais toujours lorsque votre shell sait clairement que vous n'avez pas fini d'entrer une commande. L'exemple le plus simple est de mettre une continuation de ligne explicite \ à la fin d'une ligne d'entrée (ce qui aide à diviser une longue entrée) :

$ echo \
> hallo

Notez que tout comme PS1 contrôle l'apparence de l'invite de commande, vous pouvez également définir PS2 pour changer l'invite de continuation, par exemple

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

Il y a plusieurs raisons pour que la continuation se produise. Un seul backtick est incomplet, mais vous pouvez également saisir quelque chose comme

ls -l `which cp`

en une seule ligne (side-note :il est recommandé d'utiliser $( et ) au lieu de cela, puisque les parenthèses rendent évident le début et la fin de l'expansion, tandis que les backticks simples rendent plus difficile de voir où il manque. Et la nidification...). Autres raisons possibles d'une invite de continuation :

  • un done manquant après while ou for
  • un fi manquant après un if
  • un esac manquant après case
  • une parenthèse fermante manquante, par ex. dans les sous-shells (cd $HOME; cat .bashrc)
  • une commande manquante après le raccordement | ainsi que l'exécution conditionnelle || et && (pas & cependant, puisque cela ne fait que lancer la commande en arrière-plan)
  • un guillemet fermant manquant (' ou " )

Curieusement, une accolade manquante } après une expansion variable ${ provoque également une invite de continuation, mais échouera en raison de l'espace inséré :

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

Cela signifie que votre commande n'est pas encore terminée. En fait, le caractère backtick, ` , est utilisé pour délimiter une commande en ligne.

Exemple :

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

Linux
  1. Le but de la commande de hachage ?

  2. Quel est le but des fichiers utmp, wtmp et btmp sous Linux

  3. Qu'est-ce que la commande tree dans Ubuntu ?

  4. Que fait le -e dans un bash shebang ?

  5. A quoi sert l'option -o dans la commande useradd ?

Qu'est-ce que la commande Linux Watch + Exemples

Useradd vs Adduser :quelle est la différence ?

Qu'est-ce que la commande kill sous Linux ?

useradd vs adduser :quelles sont les différences ?

Qu'est-ce que l'utilitaire de ligne de commande DNS inversé ?

Quel est le but du répertoire setgid ?