shell语法2-默认变量、数组
一:文件参数变量
1、在执行shell脚本时,可以向脚本传递参数。$1是第一个参数,$2是第二个参数,以此类推。特殊的,$0是文件名(包含路径)
#! /bin/bash
echo "文件名:"$0
echo "第一个参数:"$1
echo "第二个参数:"$2
echo "第三个参数:"$3
echo "第四个参数:"$4
执行:
acs@9e0ebfcd82d7:~$ chmod +x test.sh
acs@9e0ebfcd82d7:~$ ./test.sh 1 2 3 4
文件名:./test.sh
第一个参数:1
第二个参数:2
第三个参数:3
第四个参数:4
2、其他参数的相关变量:
$#:文件传入的参数个数
$*:所有参数构成的空格隔开的字符串,如上例中值为 "$1 $2 $3 $4"
$@:每个参数分别用双引号括起来的字符串,如上例中值为"$1" "$2" "$3" "$4"
$$:脚本当前运行的进程ID
$?:上一条命令的退出状态(注意不是stdout,而是exit code)。0表示正常退出,其他值表示错误
$(command):返回command这条命令的stdout(可嵌套)
`command`:返回command这条命令的stdout(不可嵌套)
二:数组
1、数组中可以存放多个不同类型的值,只支持一维数组,初始化时不需要指明数组大小。
数组下标从0开始。
数组用小括号表示,元素之间用空格隔开。例如:
array=(1 abc "def" yxc)
也可以直接定义数组中某个元素的值:
array[0]=1
array[1]=abc
array[2]="def"
array[3]=yxc
2、读取数组
读取单个元素:${array[index]} 如echo ${array[0]}
读取整个数组:${array[@]}或者${array[*]}
3、数组长度
类似字符串
${#array[@]} # 第一种写法
${#array[*]} # 第二种写法
最新文章
- 检测计算机已经安装的NetFramework版本(摘录)
- jsQunit
- MVC组件分析(转)
- win32 API 学习
- 64位Windows7升级IE11后无法启动的解决办法
- ubuntu下安装 Source insight
- 用document.onreadystatechange和document.readyState确保文档加载完毕才获取DOM
- CI练手下,找找感觉
- 提高MySQL数据库查询效率的几个技巧(转载)
- for循环 重点题
- SpringMVC+Mybatis架构中的问题记录
- 解决pycharm输入法不跟随的方法
- hdu-2222(ac自动机模板)
- 【BZOJ】3730: 震波
- flask 对URL进行安全验证
- (一)SSO之CAS框架通俗原理
- C#中发送邮件,包含Html代码 CDO.Message
- CentOS7 安装svn
- 【ORACLE】ID 2299494.1 安装Oracle 11g 86%报错:Error in invoking target 'agent nmhs' of makefile
- controller,service,repository,component注解的使用对比
热门文章
- android判断是否连接wifi跟网络状态的判断及wifi信号强度的方法
- ES 基础操作
- jieba分词的分词模式比较
- linux 动态库、静态库
- 配置代码片段问题 Invalid characters in string. Control characters must be escaped.
- absible笔记第一章 (ansibles基础与playbook常用模块)
- Py_excel
- windows2012安装.net4.7.2
- Codeforces Round #843 (Div. 2) C【思维】
- Elasticsearch Java client使用