芜湖企业网站建设,全国十大展陈设计公司,襄阳网站建设哪个好,西宁做网站哪家公司好数组类型
arr(1 2 3) # 最基础的方式声明数组#xff0c;用小括号()#xff0c;元素之间逗号分隔
arr([1]10 [2]20 [3]30) # 初始化时指定index
declare -a arr(1 2 3) # 用declare -a声明数组#xff0c;小括号外面可选使用单引号、双引号
declare -a arr‘(1 2 3)’…数组类型
arr(1 2 3) # 最基础的方式声明数组用小括号()元素之间逗号分隔
arr([1]10 [2]20 [3]30) # 初始化时指定index
declare -a arr(1 2 3) # 用declare -a声明数组小括号外面可选使用单引号、双引号
declare -a arr‘(1 2 3)’
declare -a arr([0]a [10]b [2]c) # 声明数组时指定indexecho ${arr[0]} # output 1
echo ${arr[11]} # not exist output emptydeclare命令 declare是bash内置命令可为变量设置属性值类型、访问类型等。 常用参数 -a: indexed array 数组 -A: associative array Map类型 -i: integer -r: read only -f: function -x: export导出环境变量 Map类型关联数组 1最外面是小括号()内部元素间用空格分隔下标用中括号[]指定。 2需要使用declare -A声明不能像数组那样可省略declare -a 3必须提供‘下标’下标可用数字此时和数组类似可以是字符串单引号、双引号都可以
declare -A map([a]10 [b]20 [c]30)
echo ${map[a]}declare -A map([1]10 [2]20 [3]30)
echo ${map[1]}glob扩展
# 目录中有3个文件
$ ls
a1 a2 b1# [...]用括号内每个元素分别扩展如果没有匹配的则跳过不会报错不同于{...}扩展
$ ls a[123]
a1 a2# {...}和上面的匹配对比如果存在不匹配的会报错提示
$ ls a{1,2,3}
ls: cannot access a3: No such file or directory
a1 a2# a1.txt a2.txt b1.sh
# 多种扩展组合使用
$ ls [ab]1.{txt,sh,cpp}
ls: cannot access [ab]1.cpp: No such file or directorya1.txt b1.sh# {}扩展第一项可为空以下命令等效cp a.txt a.txt.bak
$ cp a.txt{,.bak}# {start..end} {start..end..step} 扩展一个范围
$ echo {1..5}
1 2 3 4 5
$ echo {1..5..2}
1 3 5
$ echo {3..1}
3 2 1# 子命令扩展
date_str$(date)
date_strdate # 等价echo $date_str# 算数扩展
ret$((12*3))
echo $ret# 在脚本中可以直接引用*.log
for logFile in *.log
doecho $logFile
done关闭shell终端不终止当前运行的程序
nohup some_cmd # 解除some-cmd进程和当前shell的关联some-cmd父进程改为initd
jobs # 查看当前后台运行的进程
disown %2 # 解除后台进程#2和当前terminal的关联把其父进程改为systemd
disown -h %2# 查看shell option
shopt huponexit
shopt | grep huponexit
shopt -s huponexit # set
shopt -u huponexit # unset