Créer un fichier avec un bash

Résolu
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. Contributeur
    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
    1. Effectivement, c'est exactement ça. Ben je t'avoue que ce n'est pas évident de trouver ça. Merci @Zipe31
      0
      1. Contributeur
        À 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
    2. Effectivement, mais elles sont déclarées où ces variables? Il y en d'autres ?
      0
      1. Contributeur
        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

    Discussions similaires

    question pix mot caché

    7 réponses