shell 笔记

来源:互联网 发布:魔法王座升阶数据汇总 编辑:程序博客网 时间:2024/06/01 11:28

1、位置变量

$0:shell脚本名称

$1-$9:第一个到第九个位置的参数

${10}:第十个位置参数

$# 位置参数个数

$*:所有的位置参数

$@:除去使用双引号的情况和上一个相同

"$*":其值为“$1 $2 $3”

"$@":其值为"$1" "$2" "$3"


$:当前shell的PID

$?:上一条命令的退出码

!:最后一个进入后台作业的PID


2、算术运算

声明变量:typeset

typeset -i   var     声明整数变量

typeset -F var     声明浮点数变量

typeset -E  var    声明浮点数变量

shell通过对一个算术表达式求值并替换结果来执行算术扩展。求值算术表达式有以下两种格式:

$[ expression ]

$(( expression ))


3、数组

shell中可使用declare -a声明一个数组变量或者直接给变量名一个下标来创建数组。例如

declare -a var_name

var_name=(item1 item2 item3)


declare -a num=(43 22 100)

声明数组不一定要使用declare命令,当给任何一个使用下标的变量赋值时,将自动被当作一个数组。

x[0]=1

x[3]=100

要取数组中一个元素的值,使用命令${数组名[索引]},要获取整个数组使用${数组名[*]}

要删除数组中某一个元素,使用“unset 数组名[下标]”,删除整个数组使用“unset 数组名”

使用${#数组名[*]}输出的是数组的大小,使用${#数组名[0]}输出的是数组第一个元素含有的字符个数。


4、读取用户输入

read命令:

read var 从标准输入读取一行并赋值给变量var

read first last 从标准输入读取一行,直到遇到第一个空白符或换行符,把第一个词存入first中,剩余的存入last中。

read 从标准输入读取一行存入到内置变量REPLY中

read -a array  读取一行的一组词,一次赋值给数组array

read -p  prompt  var打印提示符prompt,并将输入赋值给var


5、内置命令test与let

单括号的test命令:可以使用单独的test命令,也可以把表达式用单括号括起来,来测试表达式的值。在使用test或者单括号测试表达式时,表达式中的元字符不会被扩展。

双括号的test命令,使用双括号来测试表达式的值时,可以通过元字符扩展进行模式匹配。

第一个方括号后面必须有空格。


6、获取当前时间

`date '+%Y-%m-%d %H:%M:%S'`

7、新建文件

touch  filename

8、函数

 函数的定义由花括号中的一组命令组成,命令之间以分号分隔,最后那条命令必须以分号终结,花括号两侧的空格是必须的,传递给函数的参数被当做函数内的位置参量。

function fun {    echo 'hello shell'    ls    echo 'over';}
这是在命令行直接定义函数,在文件中则不需要



原创粉丝点击