2014-07-17 3 views
1

J'ai la suivante si la condition:SHELL BASH requête

[[ -f ${OFSR_CFG}/LoadVariables_SMITH.bash && "${SMITH_SCRIPT}" = "MAIN" && !(-f ${OFSR_CFG}/LoadVariables_MI.bash)]] 

mais je veux présenter une valeur plus de script "${SMITH_SCRIPT}" = "RELOAD". Fondamentalement, il devrait être soit MAIN ou RELOAD.

J'ai essayé les conditions suivantes:

[[ -f ${OFSR_CFG}/LoadVariables_SMITH.bash && [["${SMITH_SCRIPT}" = "MAIN" **|| "${SMITH_SCRIPT}" = "RELOAD"**]] && !(-f ${OFSR_CFG}/LoadVariables_MI.bash)]] 

mais il est pas au script d'identifier RELOAD. La condition n'est pas satisfaisante.

Aidez-nous s'il vous plaît.

Merci

Répondre

0

Vous ne pouvez imbriquer [[ comme ça (vous voulez grouper (...) au lieu).

Vous avez besoin d'espace entre le [[ et le premier argument et entre le dernier argument et ]].

Essayez:

[[ -f ${OFSR_CFG}/LoadVariables_SMITH.bash && ("${SMITH_SCRIPT}" = "MAIN" || "${SMITH_SCRIPT}" = "RELOAD") && !(-f ${OFSR_CFG}/LoadVariables_MI.bash) ]] 
+0

ce changement ne fonctionne pas – user1468031

+0

@ user1468031 Définir l'expression "ne fonctionne pas"? Avez-vous une erreur? Ce qui se produit? D'ailleurs vous ne nous avez pas dit comment votre original ne fonctionnait pas exactement. –

+0

votre solution fonctionne et désolé pour cela. – user1468031