Shell语法速查

Shell 语法

变量

name='John' #or declare name='Docn' 定义局部变量
export NAME='Don' #定义全局变量
echo "$name""$NAME" #双引号内 $ 引用名称对应内容

输入

read commit #从命令行读取一行内容
echo "$commit"

条件测试

  • test
  • expr

测试文件状态

syntax

test condition[ condition ]

方括号形式使用需注意括号与条件间需要留有空格

测试参数解释测试参数解释
-d目录-s文件长度大于0、非空
-f正规文件-w可写
-r文件可读-x可执行

usage

$ ls -l syntax.md
-rw-r--r--  1 xugang  staff  597  2 13 23:28 syntax.md
$ test -f syntax.md # 也可写成 [ -f syntax.md ]
$ echo $?
0

测试时使用逻辑操作符

  • -a 逻辑与
  • -o 逻辑或
  • ! 逻辑否

usage

$ ll 1.1.sh syntax.md
-rwxr-xr-x  1 xugang  staff   239B  2  4 14:58 1.1.sh
-rw-r--r--  1 xugang  staff   818B  2 13 23:33 syntax.md
$ [ -x 1.1.sh -o -x syntax.md ]
$ echo $?
0

字符串测试

syntax
- test "string"
- test string_operator "string"
- test "string" string_operator "string"
- [ string_operator string ]
- [ string string_operator string ]

数值测试

expr用法

数组

索引数组

#数组定义, 元素以空格分隔,注意等号前后不能有空格
array=( one two three  )
files=( "/etc/passwd" "/etc/group" "/etc/hosts" )
limits=( 10 20 30 40 )

#打印数组
printf "%s\n" "${array[@]}"
printf "%s\n" "${files[@]}"
printf "%s\n" "${limits[@]}"

#循环遍历数组
for i in "${array[@]}" ; do
    echo $i
    # do whatever on $i
done

关联数组

// 申明关联数组
declare -A ass_array1
// 数组名[索引] = 变量
ass_array1[index1] = val
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值