我尝试编写一个脚本来从许多服务器获取一些软件的版本。 但是当我尝试的时候,我得到这个错误信息。
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
Verziok_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
我为我的坏英语道歉。
您需要删除bash脚本中等于char = (在赋值语句中)两边的空格。 所以,线路:
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 =也。