L'interprétation du '~' n'est pas toujours effectuée.
Par exemple, si tu tapes dans un terminal ~/SAVA/code/user/sava, ça va marcher, mais si tu tapes "~/SAVA/code/user/sava", il va chercher un chemin avec le nom "~" non expansé et il ne va pas le trouver.
Manifestement "gnome-terminal" n'expanse pas les "~" des arguments passés à l'option "-e". C'est pour ça que certains proposent d'utiliser plutôt "$HOME" qui est plus facilement expansé que "~".
Par exemple, dans la proposition de BufferBob utilisant l'option "-c" et non "-e":
il vaudrait mieux utiliser "$HOME":
Attention à ne pas confondre un fichier exécutable (dans un terminal) et un fichier "double-cliquable"!Code:
1
2
3
4 sava_script="$HOME/SAVA/code/user/sava" # ou bien sava_script=$(echo "~/SAVA/code/user/sava") # Utiliser "echo" pour expanser le "~" gnome-terminal -x /bin/bash -c "${sava_script};read"
Ça n'a rien à voir!
Par exemple, sur un mac (sous macos), il existe sur internet plusieurs versions d'un script nommé "appify.sh" qui prend en argument le nom d'un shell script (par exemple "toto.sh", un fichier texte rendu exécutable par chmod +x) et qui génère une application macos nommée "toto" qui apparaît sur le bureau ou ailleurs et qui, lorsqu'on double clique dessus, exécute le shell script "toto.sh".
La manière dont fonctionne "appify.sh" consiste à créer un répertoire "toto.app", dans lequel il crée tout ce que macos s'attend à trouver, et copie au bon endroit le shell "toto.sh". C'est la manière macos de "créer une application".
Dans ton cas (sous linux), il faut que tu fasses l'équivalent de "créer une application" qui s'appelle "créer un lanceur":
- soit à la main, en t'inspirant du lien proposé par hizoka
- soit un trouvant un équivalent linux de "appify.sh" (ça m'étonnerait que ça n'existe pas!)