首页 > 系统相关 >shell语法2-默认变量、数组

shell语法2-默认变量、数组

时间:2022-11-02 11:22:30浏览次数:45  
标签:shell stdout 默认 语法 参数 数组 command array

一:文件参数变量

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

标签:shell,stdout,默认,语法,参数,数组,command,array
From: https://www.cnblogs.com/liang09/p/16850411.html

相关文章

  • shell语法1-概论、注释、变量、字符串
    如果感觉有点忘了或者有点懵,敲出来测试测试就好了一:概论Linux系统中一般默认使用bash,文件开头需要写#!/bin/bash,指明bash为脚本解释器chmod+xfilename:使脚本具有可执......
  • MySQL_语法规范
    1不区分大小写,但建议关键字大写,表名、列名小写2每条命令最好用分号结尾3每条命令根据需要,可以进行缩进或换行4注释      单行注释:#      单行注释:......
  • C# 语法分析器(五)错误恢复
    系列导航(一)语法分析介绍(二)LR(0)语法分析(三)LALR语法分析(四)二义性文法(五)错误恢复(六)构造语法分析器语法分析中的错误恢复是一个很复杂的问题,有多种可能的错误恢复......
  • C# 语法分析器(四)二义性文法
    系列导航(一)语法分析介绍(二)LR(0)语法分析(三)LALR语法分析(四)二义性文法(五)错误恢复(六)构造语法分析器二义性文法,指的是一个可以为某个句子生成多颗语法分析树。最常......
  • C# 语法分析器(三)LALR 语法分析
    系列导航(一)语法分析介绍(二)LR(0)语法分析(三)LALR语法分析(四)二义性文法(五)错误恢复(六)构造语法分析器上一章构造了LR(0)自动机,现在就可以来构造LALR语法分析表了......
  • C# 语法分析器(二)LR(0) 语法分析
    系列导航(一)语法分析介绍(二)LR(0)语法分析(三)LALR语法分析(四)二义性文法(五)错误恢复(六)构造语法分析器首先,需要介绍下LALR语法分析的基础:LR(0)语法分析。还是以之......
  • C# 语法分析器(一)语法分析介绍
    系列导航(一)语法分析介绍(二)LR(0)语法分析(三)LALR语法分析(四)二义性文法(五)错误恢复(六)构造语法分析器之前的《C#词法分析器》系列,已经可以构造出一个词法分析器,可以......
  • 练手项目-C实现交互式Shell
    项目描述利用C语言实现交互式Shell终端功能。先实现常用Linuxcommand。交互式Shell交互式shellIO实现remove-指定创建和删除文件IO-opendir-readdir文件IO......
  • shell-字符串处理学习笔记一
    计算字符串长度${#string}exprlength"$string"string有空格,则必须加双引号str="helloworld"#${#string}len=${#string}echo$len11#`exprlength"$stri......
  • javascript异步编程之generator(生成器函数)与asnyc/await语法糖
    Generator异步方案相比于传统回调函数的方式处理异步调用,​​Promise​​最大的优势就是可以链式调用解决回调嵌套的问题。但是这样写依然会有大量的回调函数,虽然他们之间......