GNU/Linux >> Znalost Linux >  >> Linux

Zástupné znaky uvnitř uvozovek?

Bude to snadné, ale v mých vzpomínkách by použití dvojitých uvozovek při skriptování v shellu umožnilo rozšířit globbing a proměnné.

Ale v následujícím kódu:

#!/bin/sh

echo *.sh
echo "*.sh"
echo '*.sh'

echo $LANG
echo "$LANG"
echo '$LANG'

Dostávám tento výsledek:

bob.sh redeployJboss.sh
*.sh
*.sh
en_US.utf8
en_US.utf8
$LANG

Takže jednoduché uvozovky zabraňují rozšiřování glob AND variabilní, ale dvojité uvozovky umožňují pouze proměnnou expanzi a žádné globování?

Mohu glob v jakémkoli vzoru citací?

Přijatá odpověď:

Máte pravdu:globování nefunguje v jednoduchých ani dvojitých uvozovkách. Můžete však interpolovat globování pomocí řetězců v uvozovkách:

$ echo "hello world" *.sh "goodbye world"
hello world [list of files] goodbye world

Linux
  1. Jaký způsob tisku hodnoty uvnitř proměnné uvnitř jediné nabídky?

  2. Citáty uvnitř Backticks Vnitřní nabídky v Ksh?

  3. Co dělá Echo $? Dělat??

  1. Uzavření vs. Neuvádíte hodnotu proměnné v uvozovkách v Bash?

  2. Používáte export v .bashrc?

  3. Změnit písmo v příkazu Echo?

  1. Linuxový příkaz echo

  2. echo:příkaz nenalezen

  3. Jak rozdělit řetězec s uvozovkami (jako argumenty příkazu) v bash?