报错代码:
[: ......: unary operator expected
解决方法:
# vim <Shell Script>
将以下内容修改为:
......
if [[ ...... ]];
......
修改为:
......
if [[ ...... ]];
......
[: ......: unary operator expected
# vim <Shell Script>
将以下内容修改为:
......
if [[ ...... ]];
......
修改为:
......
if [[ ...... ]];
......
# man 7 regex
# a=1
# b=2
# c=`expr $a + $b`
# echo $c
3
或者:
# a=1
# b=2
# c=$(expr $a + $b)
# echo $c
3
或者:
# a=1
# b=2
# c=$[`expr $a + $b`]
# echo $c
3
(补充:这里以 1 加 2 等于 3 为例)
# a=1
# b=2
# let c=b/c
# echo $c
2
(补充:这里以 2 除以 1 等于 2 为例)
# a=1
# b=2
# c=$(($a * $b))
# echo $c
3
(补充:这里以 1 乘以 2 等于 3 为例)
作者:朱明宇
名称:批量实现多个远程服务器执行命令 (多条命令版)
作用:批量实现多个远程服务器执行命令 (多条命令版)
1. 在此脚本的分割线内写入相应的内容
2. 给此脚本添加执行权限
3. 执行此脚本
1. myuser=”zhumingyu” #用户名
2. myserver=”eternalcenter.com eternalcentre.com” #服务器名,每个服务器名以空格间隔
3. mycommand=”ls ip a s” #命令,每个命令以空格间隔
4. mysudo=”yes” #是否使用 sudo,可以选择 yes 或者 no
执行脚本的用户要在远程服务器中有同名用户,此用户拥有免密钥 sudo su 权限,且能被本服务器免密钥 ssh
#!/bin/bash
####################### Separator ########################
myuser="zhumingyu"
myserver="eternalcenter.com eternalcentre.com" #each server is separated by a space
mycommand="ls ip a s" #each command is separated by a space
mysudo="yes" #please choose "yes" or "no"
####################### Separator ########################
mynow=`date +%Y-%m-%d-%H-%s`
if [ $mysudo == 'yes' ];then
executecommand(){
ssh -t $1@$2 "sudo -u root su - root -c \"$command\""
}
echo "use sudo"
fi
if [ $mysudo == 'no' ];then
executecommand(){
ssh -t $1@$2 "$command"
}
echo "don't use sudo"
fi
for commands in `echo $mycommand`
do
for servers in `echo $myserver`
do
echo $servers
echo $commands
executecommand $myuser $servers $commands
done
done
# expr length 'eternalcenter.com'
17
(补充:这里以计算字符串 eternalcenter.com 的长度为例)
# expr substr "eternalcenter.com" 1 13
expr substr "eternalcenter.com" 1 13
(补充:这里以计算字符串 eternalcenter.com 的第 1 个字符到第 13 个字符串为例)
# expr index eternalcenter.com r
4
(补充:这里以显示 r 字符在字符串 eternalcenter.com 中第 1 次出现的位置为例)
# expr 1 + 1
2
(补充:这里以 1 加 1 等于 2 为例)
# expr 2 - 1
1
(补充:这里以 2 减 1 等于 1 为例)
# expr 3 \* 3
9
(补充:这里以 3 乘以 3 等于 9 为例)
(注意:expr 使用乘法时必须要使用反义符号 “\”)
# expr 9 / 3 / 3
1
(补充:这里以 9 除以 3 再除以 3 为等于 1 为例)