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. 避免`...`。代替使用$(...)

相关内容