首页 > 代码库 > shell
shell
shell-------------------------------------------------------------------------------------------------------------------------------- #!/bin/bash 分号是多个语句之间的分割符号,当只有一个语句的时候,末尾无需分号,最后一个语句后面也无需分号。 echo "What is your name?" read PERSON #stdin 获取输入并赋值给 PERSON 变量 echo "Hello, $PERSON" #双引号可有可无,单引号主要用在原样输出中。 1.变量 大小写敏感 注意空格 name=100 name="mozhiyan" DATE=`date` #命令赋值 val=`expr 2 + 2` #表达式和运算符之间要有空格,例如 2+2 是不对的,必须写成 2 + 2 val=`expr $a \* $b` #乘号(*)前边必须加反斜杠(\)才能实现乘法运算 echo $name 变量名和等号之间不能有空格 2.Shell特殊变量 $0 当前脚本的文件名 $n 传递给脚本或函数的参数。n 是一个数字,表示第几个参数。例如,第一个参数是$1,第二个参数是$2。 $# 传递给脚本或函数的参数个数。 $* 传递给脚本或函数的所有参数。 $@ 传递给脚本或函数的所有参数。被双引号(" ")包含时,与 $* 稍有不同,下面将会讲到。 $? 上个命令的退出状态,或函数的返回值。 $$ 当前Shell进程ID。对于 Shell 脚本,就是这些脚本所在的进程ID。 $* $@ "$@":数组 "$*":字串 3.替换 echo -e "Value of a is $a \n" #这里 -e 表示对转义字符进行替换。如果不使用 -e 选项,将会原样输出 双引号里可以有变量 双引号里可以出现转义字符 ${var:-word} 如果变量 var 为空或已被删除(unset),那么返回 word,但不改变 var 的值。 ${var:=word} 如果变量 var 为空或已被删除(unset),那么返回 word,并将 var 的值设置为 word。 val=`expr 2 + 2` if [ $a == $b ] #注意:条件表达式要放在方括号之间,并且要有空格,例如 [$a==$b] 是错误的,必须写成 [ $a == $b ] then echo "a is equal to b" fi 比较ref: http://c.biancheng.net/cpp/view/2736.html 字符串 greeting="hello, "$name string="abcd" echo ${#string} #输出 4 string="alibaba is a great company" echo ${string:1:4} #输出liba string="ababa is a great company" echo `expr index "$string" "ib"` 2 #查找子字符串中任一字符位置 NAME=(value0 value1 value2 value3) NAME[0]="Zara" NAME[1]="Qadir" echo "First Index: ${NAME[0]}" echo "Second Index: ${NAME[1]}" //使用@ 或 * 可以获取数组中的所有元素,例如: ${array_name[*]} ${array_name[@]} //取得数组元素的个数 length=${#array_name[@]} 或者 length=${#array_name[*]} //取得数组单个元素的长度 lengthn=${#array_name[1]} printf "%d %s\n" 1 "abc" 判断语句 if if test $[2*3] -eq $[1+5]; then echo ‘The two numbers are equal!‘; fi; The two numbers are equal! num1=$[2*3] num2=$[1+5] if test $num1 -eq $num2 then echo ‘The two numbers are equal!‘ else echo ‘The two numbers are not equal!‘ fi echo ‘Input a number between 1 to 4‘ echo ‘Your number is:\c‘ read aNum case $aNum in 1) echo ‘You select 1‘ ;; 2) echo ‘You select 2‘ ;; 3) echo ‘You select 3‘ ;; 4) echo ‘You select 4‘ ;; *) echo ‘You do not select a number between 1 to 4‘ exit 1 # Command to come out of the program with status 1 ;; esac for loop in 1 2 3 4 5 do echo "The value is: $loop" done a=0 while [ $a -lt 10 ] do echo $a a=`expr $a + 1` done #until 循环执行一系列命令直至条件为 true 时停止。 a=0 until [ ! $a -lt 10 ] do echo $a a=`expr $a + 1` done number_one () { echo "Url_1 is http://see.xidian.edu.cn/cpp/shell/" number_two } number_two () { echo "Url_2 is http://see.xidian.edu.cn/cpp/u/xitong/" } number_one $command > file 2>&1 #将外部脚本的内容合并到当前脚本,被包含脚本不需要有执行权限。 source filename
shell
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。