Shell脚本练习30day---day1
题目:已知/server/pratice/hosts文件的内容为:
请用shell脚本实现,怎么才能在输入IP后找到/server/pratice/hosts里对应的唯一的hostname?
方法一:脚本精确匹配法(谁用谁脱发)
执行结果:
方法二:awk精确匹配法
执行结果:
下面说一下,为什么ip这个变量必须使用**"‘ip’“双引号加单引号或‘ip’单引号的形式,脚本才能成功。
因为"awk"这个命令有点特殊,当一个变量被定义时,若是使用的是单引号或双引号,如:ETT=‘123’、ETT=“123”。当在awk这个命令里想调用这个变量时,只有使用”‘ETT’"双引号加单引号的形式才能获取到ETT这个变量的值123**,其它形式的调用都只会获取到空值或错误。
当一个变量被定义时,若是没有使用引号,如:ETT=123。那么在awk命令中使用**'ETT’单引号的形式**也是可以获取到变量ETT的值的。
Shell中其它命令调用变量,不论变量被定义时使用的时单引号、还是双引号、还是没有引号都依据此变量被调用时的形式。如:echo ‘ETT’ 那么输出的结果就是ETT;echo ETT 或 echo “ETT” 就会输出变量ETT的值123
方法三:awk精确匹配法
执行结果:
方法四:命令行方式