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. 避けてください`...`。代わりに使用してください$(...)

関連情報