Você tem mais problemas do que pensa. Em primeiro lugar, você pode passar um parâmetro para um script sudo sem problemas:
[me@nagios ~]$ cat parent.sh
#!/bin/bash
echo parent has $1 $2
sudo ./child.sh $1 $2
[me@nagios ~]$ cat child.sh
#!/bin/bash
echo child has $1 $2
[me@nagios ~]$ ./parent.sh a1 b2 c3
parent has a1 b2
child has a1 b2
Seu problema é que você está usando um documento aqui ( <<EOF
), que não é um mecanismo que permite para a passagem de parâmetros de uma maneira fácil: reescreva para que um script invoque outro, e você deve estar bem.
Você também está circulando sobre a saída de ls
, que, como muitas pessoas notaram por aqui , é uma péssima ideia , e vai quebrar assim que você conseguir um nome de arquivo suficientemente incomum. Apenas teste a existência (ou melhor, a existência executável, com [ -x
) de testingADM.sh
antes da invocação.
Basicamente, você mesmo escreveu um problema XY : assim que quando você parar de tentar fazer as coisas de maneira errada, muitos de seus problemas desaparecerão.