Bash 스크립트 변수 삭제 출력

Bash 스크립트 변수 삭제 출력

명령줄에서 명령을 실행했는데 제대로 작동합니다. bash 스크립트에 동일한 명령을 추가했는데 출력이 잘렸습니다. 나는 참조가 올바른지 확인했고 어디에서 잘못되었는지 알 수 없는 것 같습니다.

수동으로 실행할 때의 명령은 다음과 같습니다.

./ciscocmd -u username -p password -s passwowrd -t 192.168.1.1 -c "show mac address-table address 34e6.xxxx.xxxx"

이것은 보여준다

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

스크립트의 내용은 다음과 같습니다.

portis=`./ciscocmd -u username -p password -s passwowrd -t 192.168.1.1 -c "show mac address-table address 34e6.xxxx.xxxx"`
echo $portis

그러나 이것은 이것을 출력합니다

[root@server]# ./test.sh
switch#ddresses for this criterion: 1--4e6.xxxx.xxxx
[root@server]#

제가 뭔가를 놓치고 있는 것 같아요. Mac 주소를 둘러싸기 위해 이중 "" 및 ""를 사용해 보았지만 작동하지 않습니다.

어떤 제안이 있으십니까?

답변1

  1. echo임의의 데이터 와 함께 사용하지 마십시오
  2. 변수 참조

그래서:

printf '%s\n' "$portis"
  1. 피하다 `...`. 대신 사용하십시오 $(...).

관련 정보