J'essaie de passer un paramètre avec un espace dans ksh via des variables.ksh - passant le paramètre avec l'espace
Voici un exemple de code pour illustrer le problème. Comme vous le verrez, le paramètre avec l'espace est géré plus tard comme deux variables - pas ce que je suis après.
* Mise à jour - Je n'ai pas copié et collé tout le code dans la question origianl. **
Contenu de param_test.sh
#!/bin/ksh
echo "check 1"
param_string=${1}
param_string2=${2}
echo "check 2"
echo param_string = $param_string
echo param_string2 = $param_string2
echo "check 3"
Contenu de call_param_test.sh
#!/bin/ksh
param_test.sh 'a b' c
CMD="param_test.sh 'a b' c"
# CMD=param_test.sh
# CMD="${CMD} 'a b c'"
echo CMD is $CMD
echo now running CMD
${CMD}
echo back to calling script
echo at end
Results of executing call_param_test.sh
check 1
check 2
param_string = a b
param_string2 = c
check 3
CMD is param_test.sh 'a b' c
now running CMD
check 1
check 2
param_string = 'a
param_string2 = b'
check 3
back to calling script
at end
Merci,
Merci Dennis, la sauce secrète dont j'avais besoin était $(). Ce qui a semblé fonctionner pour moi est d'utiliser ceci - myvar = '\ test \ test' out = $ (imprimer -R $ myvar | sed 's/\\/\\\\\\/g') – Anthony