Sua variável $var
não contém o valor que você diz que ela deve conter. De acordo com a sua pergunta, deve conter isto:
. /lapp2/Scripts/mdm.ksh
Mas o valor de depuração de echo "var is '$var'"
mostra que $var
realmente contém:
/etlapp2/$1/mdm/Scripts/mdmxftpg.pl /etlapp2/$1/mdm/Scripts/mdmxftpg.aimtlane
Existem dois problemas aqui. O óbvio é que o valor real não é o valor esperado. Porém, de maneira mais sutil, observe que $var
contém um literal $1
em parte do caminho, em vez de uma interpolação do primeiro argumento de linha de comando. Eu suspeito que você tenha usado aspas simples em vez de aspas duplas em algum momento durante a atribuição de $var
.
Compare essas duas alternativas
-
a='apple'; var='/path/to/$a/script.sh'; echo "var=$var" # incorrect
-
a='apple'; var="/path/to/$a/script.sh"; echo "var=$var" # correct
Você precisa revisar seu código para descobrir por que o valor não é o esperado e para corrigir esses erros.