一道实用Linux运维问题的9种Shell解答方法

问题为:4)已知:/etc/hosts的内容为192.168.1.11 oldboy11.etiantian.org192.168.1.21 oldboy21.etiantian.org192.168.1.31 oldboy31.etiantian.org#192.168.1.111 oldboy111.etiantian.org请用shell脚本实现,怎么才能在输入IP后找到/etc/hosts里对应的唯一的hostname?解答:

提示:1)这是一个grep过滤加条件判断的实现语法:2)条件判断语法为[ -n “ddd” ] && echo 1 || echo 03)[ -n “`grep “$ip ” /etc/hosts`” ] && \ #注意前面的过滤条件结尾带有空格。这里啊,是为了排除下面的重复情况192.168.1.11 oldboy11.etiantian.org192.168.1.111 oldboy111.etiantian.org—————-我是每种方法分隔符—————

提示:此题,请大家学习while的用法及设置flag的思路。

执行结果:[root@old_boy scripts]# sh oldboy.sh 192.168.1.11the 192.168.1.11 ‘s hostname is oldboy11.etiantian.org[root@old_boy scripts]# sh oldboy.sh 192.168.1.21the 192.168.1.21 ‘s hostname is oldboy21.etiantian.org[root@old_boy scripts]# sh oldboy.sh 192.168.1.311sorrry,not find 192.168.1.311 ‘s hostname!—————-我是每种方法分隔符—————

特别提示:下面的方法中,老男孩老师大量的使用了awk的不同方法来实现同样的功能,来告诉大家,awk是很强大的,希望同学们能按照老师的教学要求精通之。

执行结果:[root@old_boy scripts]# sh awkhost1.sh 192.168.1.21oldboy21.etiantian.org[root@old_boy scripts]# sh awkhost1.sh 192.168.1.31oldboy31.etiantian.org[root@old_boy scripts]# sh awkhost1.sh 192.168.1.11oldboy11.etiantian.org提示:注意a=”‘$1′”的用法,$1为命令行传参。awk程序中调用系统变量的方法a=”‘$1′”。—————-我是每种方法分隔符—————

执行结果:[root@old_boy scripts]# awkhost2.sh 192.168.1.11oldboy11.etiantian.org[root@old_boy scripts]# awkhost2.sh 192.168.1.21oldboy21.etiantian.org[root@old_boy scripts]# awkhost2.sh 192.168.1.311—————-我是每种方法分隔符—————

—————-我是每种方法分隔符—————

—————-我是每种方法分隔符—————

执行结果:[root@old_boy scripts]# sh awkhost6.sh 192.168.1.11oldboy11.etiantian.org[root@old_boy scripts]# sh awkhost6.sh 192.168.1.21oldboy21.etiantian.org提示:1)传参非awk程序,,因此写法p=”$1″2)man awk -v var=val –assign var=val Assign the value val to the variable var, before execution of the program begins. Such vari- able values are available to the BEGIN block of an AWK program.—————-我是每种方法分隔符—————

—————-我是每种方法分隔符—————

———-老男孩老师改进后

不要忘本,任何时候,任何事情。

一道实用Linux运维问题的9种Shell解答方法

相关文章:

你感兴趣的文章:

标签云: