Pourquoi "nohup sh -c" stocke-t-il des variables?Pourquoi nohup sh -c "..." stocke-t-il une variable?
$ nohup sh -c "RU=ru" &
[1] 17042
[1]+ Done nohup sh -c "RU=ru"
$ echo ${RU}
$ RU=ru
$ echo ${RU}
ru
Comment puis-je faire de telle sorte qu'il stocke la valeur de la variable afin que je puisse utiliser dans une boucle plus tard?
Pour l'instant, ce n'est pas enregistrer la valeur quand je l'utilise à la place RU=ru
ma boucle bash, à savoir
nohup sh -c "RU=ru; for file in *.${RU}-en.${RU}; do some_command ${RU}.txt; done" &
Il ne fonctionne pas dans le sh -c "..."
aussi, chat nohup.out sorties rien pour le echo
:
$ nohup sh -c "FR=fr; echo ${FR}" &
[1] 17999
[1]+ Done nohup sh -c "FR=fr; echo ${FR}"
$ cat nohup.out
'sh -c 'commence un nouveau processus; il n'y a aucun moyen pour qu'un ensemble de variables de ce processus soit disponible pour le shell qui exécute 'sh -c'. Cela n'a rien à voir avec 'nohup'. – chepner
Est-ce que cela signifie que je dois coder en dur partout dans le script lorsque j'utilise cette variable? Cela ne fonctionne pas dans le 'sh -c" ... "' aussi = ( – alvas
Cherchez-vous la commande 'export'? 'Export RU = ru' rendra' RU' disponible dans tout processus démarré par le courant shell. ('RU = ru' serait disponible dans le shell lui-même, mais pas pour les enfants.) – chepner