Créer un fichier avec un bash

Résolu
thierryR51 Messages postés 144 Statut Membre -  
zipe31 Messages postés 34620 Date d'inscription   Statut Contributeur Dernière intervention   -
Bonjour,
La question est bête semble-t-il. Pourtant j'ai fait ça:
bookmarkUrl="~/.local/share/radiotray/bookmarks.xml";
bookmarkblog="http://fluxradios.blogspot.fr/p/flux-radios-francaise.html";

curl -s -L $bookmarkblog | sed -n "\#</b:if>#,\#>Autres radios régionales / locales<#p" | grep -o 'http://fluxradios[^<]*' | sed 's#\([^"]*\)">\(.*\)$#\2 \1#' > list.tmp

echo "<bookmarks>" > $bookmarkUrl # initialisation du fichier
exit 0


Le curl crée effectivement le fichier list.tmp mais le echo me donne en réponse:
+ echo '<bookmarks>'
radiotray: ligne 11: ~/.local/share/radiotray/bookmarks.xml: Aucun fichier ou dossier de ce type
+ exit 0


Pourtant un
ls ~/.local/share/radiotray/
bookmarks.xml.bak config.xml plugins/ radiotray.log radiotray.log.1

Mon fichier n'est pas créé, mais la directory existe bien. Est ce que c'est du au fait du "point" ?


Chercheur en améliorations.

[url]

3 réponses

  1. zipe31 Messages postés 34620 Date d'inscription   Statut Contributeur Dernière intervention   6 501
     
    Salut,

    bookmarkUrl="~/.local/share/radiotray/bookmarks.xml";
    sans les doubles-quotes, sans quoi le tilde (~) n'est pas interprété :

    bookmarkUrl=~/.local/share/radiotray/bookmarks.xml;
    ;-)
    1
  2. thierryR51 Messages postés 144 Statut Membre 8
     
    Effectivement, c'est exactement ça. Ben je t'avoue que ce n'est pas évident de trouver ça. Merci @Zipe31
    0
    1. zipe31 Messages postés 34620 Date d'inscription   Statut Contributeur Dernière intervention   6 501
       
      À noter que dans un script mieux vaut privilégier les chemins absolus et que la variable
      ${HOME}
      aurait été plus adaptée :

      bookmarkUrl="${HOME}/.local/share/radiotray/bookmarks.xml";
      ;-)
      0
  3. thierryR51 Messages postés 144 Statut Membre 8
     
    Effectivement, mais elles sont déclarées où ces variables? Il y en d'autres ?
    0
    1. zipe31 Messages postés 34620 Date d'inscription   Statut Contributeur Dernière intervention   6 501
       
      Tu peux avoir un aperçu avec les commandes
      env
      et
      set | less
      .

      La seconde j'ai mis un
      pipe
      vers
      less
      parce qu'elle est extrêmement verbeuse vu qu'elle affiche aussi toutes les fonctions.
      0