shell小记

1.以#!/bin/bash 开头
2.执行方式 bash sh ./ `script`
3.变量: 系统变量  自定义变量  --->export 可导出为全局环境变量
        set显示所有shell变量  unset 取消变量     readonly静态变量不能被unset
4.获取命令返回值
    A=`ls -al`   =====  A=$(ls-al) -----> echo $A
5.参数取值
    &*      全部参数
    $@        无引号时代表全部参数,有引号代表全部参数的数组
    $#        传入参数的个数
    $n        代表传入的第几个参数,0代表shell本身  第10位以上的参数${10}
    
    $$        当前进程号
    $!        后台运行的最后一个进程号
    $?        上一个命令执行的返回状态 0代表成功
6.运算符
    $((calc))   或者   $[cals]   
    expr `clac`       直接输出了
            例:expr `expr 2 + 3` \* 4    -->20
                A=[(2+3)*4]  echo $A      -->20
                
7.条件判断
    [ condition ]    注意:前后有空格
    23是否大于22                          [ 23 -gt 22 ]
    test.txt是否有读权限                [ -r test.txt ]
    hive.log是否存在                    [-e /hive.log]
8.分支语句
     if   case     

#!/bin/bash
if [ $1 = 123 ] ; then        不换行写分号
    echo 123
elif [ $1 = 456 ]            换行不用写
then
    echo 456
else                        else不写then
    echo 666
fi

#!/bin/bash
case $1 in 
1)
    echo 1
;;                            注意双分号
2)
    echo 2
;;
*)                            没匹配的执行这个
    echo 666
;;
esac    
View Code

  for      while

s=0
for ((i=0;i<=100;i++))    也可 ;do 
do
    s=$[$s+$i]
done

echo $s    

for x in 1 2 3 ; do
    echo $x
done

for y in "$@"
do     
    echo $y
done



i=0
s=0
while [ $i -le 100 ]   用此类型比较符
do
    s=$[$s+$i]
    i=$[$i+1]
done
echo $i
echo $s
View Code

   
9.控制台读入信息
    read -t 10 -p "等待10秒读入姓名" NAME     echo $NAME
10.函数
    basename    获取文件名(去除目录部分)
    dirname        获取目录(去除文件名部分)
    
    自定义函数   function funName()
                {    
                    方法体(没有return时,最后一条语句作为返回值,$?获取)
                }

posted @ 2018-09-28 11:20  小平哥Keeping  阅读(94)  评论(0编辑  收藏  举报