Bash-将变量插入字符串(未找到命令)

Bash-将变量插入字符串(未找到命令)

我尝试编写一个脚本来从多个服务器获取某个软件的版本。但是当我尝试时,我得到了这个错误消息。

bash:Postfix verzio:MariaDB verzio:OS verzio:Java verzio::未找到命令

bash:postfixverzio:未找到命令

消息正文为空;希望没问题

#!/usr/bin/env bash

parancsok=$(<verziok_lekerdezese.sh)

while read line
do
    array=($line)
    echo "IP Addresses : ${array[0]} "
    ssh -t -t root@${array[0]} ${parancsok}
done < ipcimek_test.txt

版本ziok_lekerdezese.sh:

postfixvr = $(postconf -d | grep -m 1 mail_version | cut -d= -f2)
mariadbvr = $(mysql -v)
osvr = $(cat /etc/redhat-release)
javavr = $(java -version)
hostname = $(cat /etc/hostname)

body = "Postfix verzio: $postfixvr MariaDB verzio: $mariadbvr OS verzio: $osvr Java verzio: $javavr"

echo $body | mail -s "Verziok - Szervernev: $hostname" [email protected]

exit

我为我的糟糕英语道歉。

答案1

=您需要在 Bash 脚本中删除等号字符(在赋值语句中)两侧的空格。因此,以下几行:

postfixvr = $(postconf -d | grep -m 1 mail_version | cut -d= -f2)
mariadbvr = $(mysql -v)
osvr = $(cat /etc/redhat-release)
javavr = $(java -version)
hostname = $(cat /etc/hostname)

应该写成:

postfixvr=$(postconf -d | grep -m 1 mail_version | cut -d= -f2)
mariadbvr=$(mysql -v)
osvr=$(cat /etc/redhat-release)
javavr=$(java -version)
hostname=$(cat /etc/hostname)

这也适用于所有作业,包括body =

相关内容