S'il y a un "First World Problems" pour le script, ce serait bien.
J'ai le code suivant dans un script que je mets à jour:
if [ $diffLines -eq 1 ]; then
dateLastChanged=$(stat --format '%y' /.bbdata | awk '{print $1" "$2}' | sed 's/\.[0-9]*//g')
mailx -r "Systems and Operations <sysadmin@[redacted].edu>" -s "Warning Stale BB Data" jadavis6@[redacted].edu <<EOI
Last Change: $dateLastChanged
This is an automated warning of stale data for the UNC-G Blackboard Snapshot process.
EOI
else
echo "$diffLines have changed"
fi
Le script envoie un courrier électronique sans problème, mais la commande mailx est imbriquée dans une instruction if. Il semble donc que je dispose de deux choix:
- Mettez
EOI
une nouvelle ligne et brisez les motifs d’indentation ou - Conservez-le avec indentation mais utilisez quelque chose comme une déclaration echo pour que mailx suce mon courrier électronique.
Je suis ouvert aux alternatives à heredoc, mais s'il existe un moyen de contourner cela, c'est ma syntaxe préférée.
$dateLastChanged
n’élargit pas la variable que j’essaie de mettre dedans ( ) si je fais la chose hypen + quotes dans votre exemple, mais si je prends le trait d’union et cite et mets EOI sur un nouvelle ligne, il recommence à l'agrandir.