- não use
echo
para dados arbitrários - cite suas variáveis
Então:
printf '%s\n' "$portis"
- Evite
'...'
. Use$(...)
em vez disso.
Eu corro um comando na linha de comando e funciona bem. Eu adicionei o mesmo comando para um script bash e ele corta a saída. Eu me certifiquei de que as citações estão corretas e não consigo ver onde estou indo errado.
Este é o comando quando o executo manualmente:
./ciscocmd -u username -p password -s passwowrd -t 192.168.1.1 -c "show mac address-table address 34e6.xxxx.xxxx"
e mostra
Processing... 192.168.1.1
switch#show mac address-table address 34e6.xxxx.xxxx
Mac Address Table
-------------------------------------------
Vlan Mac Address Type Ports
---- ----------- -------- -----
10 34e6.xxxx.xxxx DYNAMIC Gi0/2
Total Mac Addresses for this criterion: 1
Isso está no script:
portis='./ciscocmd -u username -p password -s passwowrd -t 192.168.1.1 -c "show mac address-table address 34e6.xxxx.xxxx"'
echo $portis
mas ainda gera isto
[root@server]# ./test.sh
switch#ddresses for this criterion: 1--4e6.xxxx.xxxx
[root@server]#
Eu devo estar perdendo alguma coisa. Eu tentei duplo "" e "" para cercar o endereço MAC, mas não está funcionando.
Alguma sugestão?
echo
para dados arbitrários Então:
printf '%s\n' "$portis"
'...'
. Use $(...)
em vez disso. Tags scripting shell-script