Guillemets simples ou doubles lors de la définition d'un alias?

Je sais que le contenu des guillemets doubles est élargi, alors que le contenu des guillemets simples ne sont pas, de sorte que

echo '$1' 

donne

 $1 

tandis que

 echo "$1" 

donne

 <the argument - blank in this particular example> 

le même que

 echo $1 

Cependant, la question Bash: comment créer un alias dans .bashrc pour awk avec des parameters m'a amené à me requestr pourquoi des guillemets doubles et non des apostrophes simples étaient utilisés lors de la déclaration de l'alias:

 alias cutf="_cutf" 

au lieu de

 alias cutf='_cutf' 

J'aurais employé des guillemets simples comme dans le dernier exemple. La plupart des exemples sur le Web utilisent un seul, à less qu'il y ait une expansion nécessaire. Cependant, dans ce cas, aucune expansion, à mes yeux, n'est apparente. Est-ce que, dans ce cas, ils sont interchangeables ou les guillemets sont-ils nécessaires parce qu'une définition de fonction est employée?

Dans l'exemple que vous mentionnez, où l'extension de l'alias est un seul mot ne contenant aucun caractère sujet à l'expansion, cela ne _cutf rien à la façon dont vous citez le nom _cutf :

 $ alias cutf="_cutf" $ alias cutf alias cutf='_cutf' $ unalias cutf $ alias cutf='_cutf' $ alias cutf alias cutf='_cutf' $ unalias cutf $ alias cutf=_cutf $ alias cutf alias cutf='_cutf' 

Comme vous pouvez le voir dans cette interaction, le callback de la valeur de l'alias cutf donné le même résultat à chaque fois. Donc, oui, les styles de citation sont interchangeables ici.

Il n'est pas pertinent que l'extension porte sur un nom de fonction: au less avec bash, les alias effectuent une simple substitution textuelle (la définition d'un alias n'est pas évidente, l'appel direct de la fonction sous-jacente semble tout aussi simple) .

C'est une réponse à la question posée par le titre (qui m'a amené ici) plutôt qu'à la question particulière du PO.

Les guillemets sont évalués dynamicment:

 alias QS='echo $PWD' 

Les guillemets sont évalués au moment de la création et, par la suite, ne changent jamais:

 alias QD="echo $PWD" 

Le même comportement se trouve dans bash, zsh et, je suppose, d'autres shells.

C'est aussi simple que cela: s'il n'y a pas de variable, les parenthèses sont interchangeables. Le script shell, bien que très utile, est aussi un langage très simple. Je (et d'autres que je connais) ont tendance à utiliser des guillemets doubles par défaut, juste par la force de l'habitude – et je n'ai jamais rencontré de problèmes.