我正在尝试创建一个bash脚本,它将能够在phpmyadmin命令文件中更改"allow from"ip地址(我仍然不确定是否可以这样做)并重新启动apache
我正在尝试从变量中提取IP地址,在搜索网络后我仍然没有任何线索,这是我到目前为止所拥有的...
#bash shell script
#!/bin/bash
clear
echo "Get client IP address"
ip=$(last -i)
echo $ip
exit
echo "restart apache"
/etc/init.d/apache2 reload
Run Code Online (Sandbox Code Playgroud)
我尝试添加以下行没有运气
ip=$(head -n 1 $ip)
Run Code Online (Sandbox Code Playgroud)
如果有人能告诉我如何从变量$ ip中提取IP地址的第一个实例,我将非常感激.
ip=$(last -i | head -n 1 | awk '{print $3}')
Run Code Online (Sandbox Code Playgroud)
更新:
ip=$(last -i | grep -Pom 1 '[0-9.]{7,15}')
Run Code Online (Sandbox Code Playgroud)
你可以用grep与read:
read ip < <(last -i | grep -o '[0-9]\+[.][0-9]\+[.][0-9]\+[.][0-9]\+')
read ip < <(last -i | grep -Eo '[0-9]+[.][0-9]+[.][0-9]+[.][0-9]+')
Run Code Online (Sandbox Code Playgroud)
\b也许在那里很有帮助.只是不确定它的兼容性.而另一个:
ip=$(last -i | gawk 'BEGIN { RS = "[ \t\n]"; FS = "." } /^([0-9]+[.]){3}[0-9]+$/ && ! rshift(or(or($1, $2), or($3, $4)), 8) { print ; exit; }')
Run Code Online (Sandbox Code Playgroud)