シェル スクリプトを実行するときに次のエラーを取得する方法

シェル スクリプトを実行するときに次のエラーを取得する方法

リモート サーバーにログインするためのスクリプトが 1 つあります。しかし、スクリプトを実行しようとすると、エラーが発生しました。

ログ:

私のスクリプト:

#!/bin/bash
S1=$(ssh -t selvam-odc-shell1 "users | wc -w ")
S2=$(ssh -t selvam-odc-shell2 "users | wc -w ")
S3=$(ssh -t selvam-odc-shell3 "users | wc -w ")
if [ "$S1" -le 100 ];
then 
ssh -t  selvam-odc-shell1 " bash"
if [ "$S2" -le 100 ];
then 
ssh -t  selvam-odc-shell2 "bash"
elif [ "$S3" -le 100 ]; 
then
ssh -t  selvam-odc-shell3 "bash"
else
echo " Shell has been more than 100 users.Please try again later
fi

しかし、

[user@selvam-odc-sunray2: ~]#./shell.sh
Connection to selvam-odc-shell1 closed.
Connection to selvam-odc-shell2 closed.
Connection to selvam-odc-shell3 closed.
: integer expression expected60
: integer expression expected 29

この問題の解決にご協力ください。

ありがとう、MM SELVAM

答え1

ssh コマンドは数字を追加するだけでなく、改行も追加します。つまり、変数の内容は「1\n」のように整数ではありません。

引用符を削除します: S1=$(ssh -t selvam-odc-shell1 users | wc -w )

関連情報