Je voudrais concaténer des chaînes ensemble pour créer une chaîne de commande dans un script csh, fichier1.csh. Cependant, csh continue de se plaindre des erreurs pour la variable commandString et je ne sais pas vraiment ce que j'ai fait de mal. Voici une partie des codes.Comment concaténer des chaînes ensemble dans csh?
set var1 = "Hat"
set var2 = 100
set embeddedString = 's/'$var1' =.*$/'$var1' = '$var2'/g'
set commandString = "sed -i ' "$embeddedString" ' productPrice.txt"
echo $commandString
Mon objectif est de mettre CommandString vairable être quelque chose comme
sed -i 's/Hat =.*$ /Hat = 100/g' productPrice.txt
Ensuite, ce CommandString sera inséré dans un autre fichier de script, file2.csh. file2.csh est le fichier script réel qui exécute la commande de substitution pour le prix de Hat. De plus, les valeurs de var1 et var2 sont lues à partir d'un fichier priceUpdateList.txt afin qu'elles ne soient pas des valeurs fixes. En d'autres termes, je ne peux pas simplement taper Hat et 100 dans la variable commandString. Est-ce que quelqu'un sait comment utiliser correctement la citation pour générer la chaîne de commande dans csh?
Merci beaucoup,
Je ne peux pas tester cela dans mon environnement, mais vous devrez citer (au moins 1x) les guillemets simples intégrés (ie 'cmdStr =" sed -i \ '... '. $ cmdStr vous aurez besoin de 'eval' juste? Bonne chance – shellter
Aussi, activez le débogage du shell (hm ... csh ...' set -vx' comme tous les autres shells?). bonne chance – shellter
Merci beaucoup, avant que je ne me suicide, ça a marché. :) J'ai découvert que je pouvais mettre en place la chaîne commandString mais je ne pouvais pas en faire écho. Cependant, aussi longtemps que csh peut définir les variables, je suis satisfait – Cassie