Math 无效算术运算符
使用cygwin并编写脚本来显示我当前的ip地址减去2。出于某种原因,它给了我以下错误:“)语法错误:无效的算术运算符(错误标记为” 这是我正在使用的脚本Math 无效算术运算符,math,cygwin,Math,Cygwin,使用cygwin并编写脚本来显示我当前的ip地址减去2。出于某种原因,它给了我以下错误:“)语法错误:无效的算术运算符(错误标记为” 这是我正在使用的脚本 $ cat test3.sh #!/bin/bash # function IPADDRESS { v=$4 echo $1.$2.$3.$((v-2)) } ADDRESS=$(ipconfig | grep Address | cut -f2 -d :) # echo $ADDRESS IPADDRESS ${ADDR
$ cat test3.sh
#!/bin/bash
#
function IPADDRESS {
v=$4
echo $1.$2.$3.$((v-2))
}
ADDRESS=$(ipconfig | grep Address | cut -f2 -d :)
# echo $ADDRESS
IPADDRESS ${ADDRESS//\./ }
欢迎提供任何帮助或建议!该脚本实际上存在一些问题。主要问题是ipconfig将在行尾输出“\r”字符,这将填充计算 另一个原因是您不允许使用多个NIC,因此我添加了
“head-1”
。您需要更智能地选择所需的NIC
最后,我去掉了IP地址前面的前导空格(实际上是所有空格)
以下是我的作品:
#!/bin/bash
#set -x
function IPADDRESS {
((v = $4 - 2))
echo $1.$2.$3.$v
}
ADDRESS=$(ipconfig | grep Address | head -1 | cut -f2 -d: | sed 's/[ \r]//g')
echo $ADDRESS
IPADDRESS $ADDRESS
输出:
192.168.91.7
192.168.91.5
实际上,我的版本输出了以下内容:
192.168.91.1
192.168.91.-1
所以你得小心点
我对提高产出以打动/哄骗管理层并不陌生:-)
有用的代码片段:
脚本顶部的
“set-x”
非常适合查找这些类型的错误。它在所有替换之后但在执行之前输出每一行,这样您就可以准确地看到正在发生的事情。实际上,该脚本存在一些问题。主要的一点是ipconfig将在填充计算的行的末尾输出“\r”字符
另一个原因是您不允许使用多个NIC,因此添加了我的“head-1”
。您需要更智能地选择所需的NIC
最后,我去掉了IP地址前面的前导空格(实际上是所有空格)
以下是我的作品:
#!/bin/bash
#set -x
function IPADDRESS {
((v = $4 - 2))
echo $1.$2.$3.$v
}
ADDRESS=$(ipconfig | grep Address | head -1 | cut -f2 -d: | sed 's/[ \r]//g')
echo $ADDRESS
IPADDRESS $ADDRESS
输出:
192.168.91.7
192.168.91.5
实际上,我的版本输出了以下内容:
192.168.91.1
192.168.91.-1
所以你得小心点
我对提高产出以打动/哄骗管理层并不陌生:-)
有用的代码片段:
脚本顶部的
“set-x”
非常适合查找这些类型的错误。它在所有替换之后但在执行之前输出每一行,这样您就可以确切地看到发生了什么。我尝试了几种不同的组合。以下几点对我有用。set-x真的很有帮助。再次感谢
#!/bin/bash
#set -x
function IPADDRESS {
v=$4
echo $1.$2.$3.$((v-2))
}
ADDRESS=$(ipconfig | grep Address | head -1 | cut -f2 -d: | sed 's/[ \r]//g')
IPADDRESS ${ADDRESS//\./}
我试过几种不同的组合。以下几点对我有用。set-x真的很有帮助。再次感谢
#!/bin/bash
#set -x
function IPADDRESS {
v=$4
echo $1.$2.$3.$((v-2))
}
ADDRESS=$(ipconfig | grep Address | head -1 | cut -f2 -d: | sed 's/[ \r]//g')
IPADDRESS ${ADDRESS//\./}