unix shell

1、#!/bin/bash

2、readonly可以将变量定义为只读变量

3、unset删除变量  unset variablename;变量被删除后不能再次使用;unsert不能删除只读变量

4、字符串可以用单引号或双引号,双引号可以使用变量,也可以用转义字符

5、获取字符串长度,在变量名前加#,即 ${#variablename}

6、支持一维数组,不支持多维数组

7、数组:用括号表示,用空格分隔开,读取数组   ${数组名[下标]},@可以获取数组所有元素  ${array_name[@]},  获取数组长度 ${#array_name[@]}

8、向脚本传递参数,获取参数的形式为  $n

9、$* 与 $@ 区别:

  • 相同点:都是引用所有参数。
  • 不同点:只有在双引号中体现出来。假设在脚本运行时写了三个参数 1、2、3,,则 " * " 等价于 "1 2 3"(传递了一个参数),而 "@" 等价于 "1" "2" "3"(传递了三个参数

10、-n判断一个string不是Null值,string要用双引号;返回0为真,1为假;[ -n  "$参数" ]

11、expr能完成表达式求值操作

12、布尔运算符:  ! : 非;  -o :或;  -a: 与

13、-e 开启转义; \c表示不换行

14、使用printf的脚本移植性比echo好

15、%s , %c, %d ,%f  是格式替代符,表示字符串,字符,整型,实数(小数)

%-10s:表示一个宽度为10的字符,- 表示左对齐,没有即右对齐,任何字符都会被显示在10个宽度的字符内

%-4.2f:表示输出保留2个小数位的实数

16、test用于检查某个条件是否成立,可进行数值,字符,文件三方面测试

17、sh的流程控制语句不可为空

if condition
then
    command1 
    command2
    ...
    commandN
else
    command
fi

18、case ... esac 为多选择语句

echo '输入 1 到 4 之间的数字:'
echo '你输入的数字为:'
read aNum
case $aNum in
    1)  echo '你选择了 1'
    ;;
    2)  echo '你选择了 2'
    ;;
    3)  echo '你选择了 3'
    ;;
    4)  echo '你选择了 4'
    ;;
    *)  echo '你没有输入 1 到 4 之间的数字'
    ;;
esac

19、continue命令与break命令类似,只有一点差别,它不会跳出所有循环,仅仅跳出当前循环

#!/bin/bash
while :
do
    echo -n "输入 1 到 5 之间的数字: "
    read aNum
    case $aNum in
        1|2|3|4|5) echo "你输入的数字为 $aNum!"
        ;;
        *) echo "你输入的数字不是 1 到 5 之间的!"
            continue
            echo "游戏结束"
        ;;
    esac
done

当输入数字大于5,循环不会结束,“游戏结束”不会被执行

20、函数定义

[ function ] funname [()]

{

    action;

    [return int;]

}

可以带function fun() ,也可以直接fun()不带参数;在函数内部,获取参数为$n 

21、输出重定向  common1 > file1:表示将命令行输出内容覆盖到文件中;

common1 >> file1 :表示将命令行输出内容添加到文件后

22、输入重定向: common1 < file1 :本来需要从键盘输入的命令转移到文件中读取

23、引用外部脚本    . filename  表示引用文件,注意  . 与文件名中间有空格

24、

 

posted on 2021-03-16 15:40  ChanXM  阅读(113)  评论(0)    收藏  举报

导航