2017-09-03 4 views
1

J'utilise le code suivant pour exécuter la commande shell, le problème est que lorsque je le mets en paramètre que je devrais obtenir de l'utilisateur, il ne fonctionne pas, mais si je le mets codé en dur cela fonctionne, tout idée ce qui pourrait être le problème?Shell param doest passer avec commande

Travailler

VAL=`./test a | grep '^.(\bpass\b)?.$' | cut -d ' ' -g1` 

travail non

VAL=`./test a | grep ${param} | cut -d ' ' -g1` 

Dans la version de travail non que je fais cat à param Je vois la valeur imprimée OK, que pouvais-je manquer quand je passe ${param}?

+0

La variable 'param' contient-elle vraiment la valeur correcte? Exécutez le code sous '-x' pour le vérifier, ou faites un' echo param = "$ param" 'avant. – user1934428

Répondre

1

Les paramètres dans shell sont $ 1 $ 2 $ 3 etc ... En ce moment, ce que vous avez tapé est vide.

Vous devrez peut-être mettre "" autour du paramètre $ 1. Et assurez-vous que la valeur de $ 1 est en effet la bonne valeur.

+0

Alors, comment devrais-je changer la commande? –

+0

Dépend de ce que vous voulez faire – George

+0

si je fais 'echo $ {param}" 'Je vois les données alors comment dois-je le changer? –