一:文件参数变量

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[*]}  # 第二种写法

最新文章

  1. 检测计算机已经安装的NetFramework版本(摘录)
  2. jsQunit
  3. MVC组件分析(转)
  4. win32 API 学习
  5. 64位Windows7升级IE11后无法启动的解决办法
  6. ubuntu下安装 Source insight
  7. 用document.onreadystatechange和document.readyState确保文档加载完毕才获取DOM
  8. CI练手下,找找感觉
  9. 提高MySQL数据库查询效率的几个技巧(转载)
  10. for循环 重点题
  11. SpringMVC+Mybatis架构中的问题记录
  12. 解决pycharm输入法不跟随的方法
  13. hdu-2222(ac自动机模板)
  14. 【BZOJ】3730: 震波
  15. flask 对URL进行安全验证
  16. (一)SSO之CAS框架通俗原理
  17. C#中发送邮件,包含Html代码 CDO.Message
  18. CentOS7 安装svn
  19. 【ORACLE】ID 2299494.1 安装Oracle 11g 86%报错:Error in invoking target 'agent nmhs' of makefile
  20. controller,service,repository,component注解的使用对比

热门文章

  1. android判断是否连接wifi跟网络状态的判断及wifi信号强度的方法
  2. ES 基础操作
  3. jieba分词的分词模式比较
  4. linux 动态库、静态库
  5. 配置代码片段问题 Invalid characters in string. Control characters must be escaped.
  6. absible笔记第一章 (ansibles基础与playbook常用模块)
  7. Py_excel
  8. windows2012安装.net4.7.2
  9. Codeforces Round #843 (Div. 2) C【思维】
  10. Elasticsearch Java client使用