变量类型
字符串 a='xx'
数字 i=1314
布尔 true false
数组 array=(a b c)
函数 foo(){echo hello world}
高于4.x的shell没有hash词典功能

shell中的一些预变量

$$ 当前执行的进程PID
$0 当前执行的shell文件名
$# 传递给shell程序的所有位置参数个数
$* 传递给shell程序的所有位置参数的值
$? 上一条命令执行的返回码 (0表示成功)
$! 上一条后台进程的pid
$1~$9 对应shell程序中前9个行参数
${10}~${n} 对应shell程序中更多的行参数(只对ksh)

$PWD:当前目录
$USER:当前是谁
 $HOME:当前主目录
 ~:当前主目录

$PATH:当前环境

变量的定义

a=1  #数字定义
b=seveniruby    # 字符串定义
d="hello from testhome"   # 字符串定义
e='hello from "清华大学"'   # 字符串定义

arr=(1 2 3 4 jkjkfjskd)   # 数组定义,以空格分隔

=左右不要有空格
如果内容有空格,需要使用单引号或者双引号
双引号支持转义$开头的变量会被自动替换

变量的使用

数字和字符串使用

$a或者${a}

数组索引的使用

arr = (1 2 3 4 dsjfgsh)

获取固定下标1的值${arr[1]}

获取数组的所有值${arr[@]}

获取数组的长度${arr[*]}或者${arr[@]}

数组的增删改查

改:

arr[1]=100    #此时arr为(1 100 3 4 dsjfgsh)

增加:

 

posted on 2020-05-07 10:54  我们的目标星辰大海  阅读(151)  评论(0编辑  收藏  举报