Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Empêcher l'expansion de *

11 réponses
Avatar
Vincent Verdon
Bonjour à tous,

j'ai un script bash qui est appelé avec un argument qui peut être "*".

Je ne parviens pas à empêcher l'expansion de l'argument quand il s'agit
du symbole *.
Y-a-t-il une solution ? Je cherche sans trouver :-(

Amicalement, Vincent Verdon

1 réponse

1 2
Avatar
Stephane CHAZELAS
2010-12-2, 10:43(+01), Lucas Levrel:
Le 2 décembre 2010, Stephane CHAZELAS a écrit :

Si le shell courant est zsh, on peut faire:

alias script.bash='noglob script.bash'

Alors, zsh n'"expand" pas les globbing patterns pour l'appel des
commandes script.bash.



Est-ce qu'on peut faire la même chose avec bash



Une approximation:

$ trap 'cmd=$BASH_COMMAND' DEBUG
$ e() { local a=${cmd#e }; echo "$a"; }
$ e *.txt
*.txt

Mais attention:

$ e $a
$a
$ e $(:)
$(:)
$ a=$(e foo); echo $a
a=$(e foo)

Mais pourquoi utiliser bash en shell interactif quand on peut
avoir zsh pour le meme prix?

ou dois-je créer un
script du type :
---
#!/bin/bash
set -f
mmv "$@"
---
?



Ca, ca n'aiderait pas. Le set -f n'a aucune utilité la dessus
car a aucun moment ce shell qui execute ce script n'est en
mesure d'expander des wildcards.

--
Stephane
1 2