本文转自 https://www.cnblogs.com/binbinjx/p/5680214.html
配置文件init.properties
1 | ID=123 |
方法一,利用sed解析文本,提取配置信息
1 | id=`sed '/^ID=/!d;s/.*=//' init.properties` |
方法二,利用eval方法解析
1 | while read line;do |
方法三,直接将配置信息加载到session的环境变量中
1 | source init.properties |
参数判断
1 | if [ "$1" = "Y" ]; then |
获取本机IP
1 | ip a | grep inet | grep -v inet6 | grep -v 127 | sed 's/^[ \t]*//g' | cut -d ' ' -f2 |
获取 10+ 参数值
在Shell脚本中,可以用$n的方式获取第n个参数,例如,一个名为paramtest的脚本:1
2#!/bin/bash
echo $1 $2
执行./paramtest a b
的结果是打印出第1个和第2个参数:
1 | a b |
但是,若脚本需要10个以上的参数,直接写数字会有问题。例如,脚本为:1
2#!/bin/bash
echo $1 $2 $3 $4 $6 $7 $8 $9 $10
执行./paramtest a b c d e f g h i j
,结果如下,第10个参数是不对的:1
a b c d e f g h i a0
显然$10
被解释成了$1+0
解决方法很简单,第10个参数加花括号即可:1
2#!/bin/bash
echo $1 $2 $3 $4 $6 $7 $8 $9 ${10}
再次执行./paramtest a b c d e f g h i j
,结果正确:1
a b c d e f g h i j