en fait, tout dépend de quand et comment tu lances ton script...
les && sont pour lancer une commande si la première est bien terminée, sinon non.
les sauts de lignes cassent le fonctionnement sauf si tu fais
du code && \
une autre ligne
qui équivaut à
du code && une autre ligne
par exemple
sudo apt update -y && sudo apt upgrade
tu trouveras tes variables globales avec
env
$USER est l'utilisateur courant
$HOME est son home
...
pour ce qui est de toucher au script, c'est clair qu'il est préférable de ne pas mélanger le code et les données...
donc tu peux avoir un fichier à part à adapter
prenons un fichier texte :
monfichier.txt
une ligne
une autre ligne
pour lire ce fichier :
IFS=$'\n'
for uneligne in $(< "unfichier.txt")
do
echo $uneligne
done
ici cela fonctionne car le nom du fichier ne contient pas de saut de ligne (rare, mais ça existe)
et attention aux changement de IFS 😉
ou injecter les variables au lancement du script
je ne te met pas d'exemple mais regarde du côté de getopt voire getopts et les variables de bash
nomlogiciel="${0##/*}
arguments=${@}
lepremier=${1}
...
voila, tu as de quoi faire des recherches
et, j'ai un fil avec des exemples et des liens ici :
un peu de lecture