您的位置:首页 > 运维架构 > Shell

shell常用也是常错的几个知识点

2018-01-16 20:53 204 查看
1 定义变量不能有空格

colon =`grep ":" "$result1"`

2 中括号两遍必须有空格

if [ "$colon" -eq "0" ]

如果是||比较是   if [ "$colon" -eq "0" ] || [ "$linenum" -eq "1" ]

不是 if [ "$colon" -eq "0" || "$linenum" -eq "1" ]

3 数值计算

i++ 

((i=i+1))

4 数值,string 比较

5 数组取值

                for ((i=0;i<${#arr[@]};i++))

                do

                        name=`echo ${arr[$i]} |awk -F '=' '{print $1}'`

                        gs=$gs";"$name

                        echo "line22:${arr[$i]};$name;$gs"

                done
不是$arr[i]

6 eval使用
所以此时我们需要通过使用eval来解决该问题,eval添加到语句的开头,在执行该语句的时候,会扫描两次该语句:第一次扫描能够替换变量对应的值,第二次扫描就是为了识别语句并运行该语句

例子:

7 awk的结果传给shell

string:ACCESS=Access

                abce=`echo $result1 |awk -F '=' '{printf("gs=\"%s\";a=\"%s\"",$1,$2)}'`

                eval $abce
echo "line39:$gs;$a;result1=$result1"
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: