bash语法学习记录

bash是什么:https://www.jianshu.com/p/b513087cd7ec
bash基础教程:https://www.runoob.com/linux/linux-shell.html
记录学习时的一些细节

bash文件可以在第一句声明 脚本解释器的位置
bash解释器的默认位置在/bin/bash

#! /bin/bash

变量不需要特别声明 只要使用未定义过的变量名即可
注意赋值时等号前后不能 使用空格 否则会报错
引用变量时需要在前面加上$

#! /bin/bash
str="NewString"
echo $str

#>NewString

变量类型一般为字符串 需要整型以及整型计算时需要let关键字

#! /bin/bash
num=1
echo $num
let "num=$num+1"
echo $num

#>1
#>2

readonly关键字可以设置变量为只读
变量不需要$修饰

#! /bin/bash
num=1
readonly num
let "num=$num+1"
echo $num

#>./start.sh:行4: num: 只读变量
#>1

unset关键字可以清除变量
变量不需要$修饰

#! /bin/bash
num=1
unset num
echo $num

#>
#输出空行

但是unset不可以清除只读变量

#! /bin/bash
num=1
readonly num
unset num
echo $num

#>./start.sh: 第 4 行:unset: num: 无法反设定: 只读 variable
#>1

变量清除后可以再次使用

#! /bin/bash
num=1
unset num
echo $num
num=2
echo $num

#>
#>2

可以直接在字符串中引用其他字符串
这里可能会导致字符串中有歧义
如 {num}Sum 来代替$numSum

#! /bin/bash
num="2"
str="1 + 1 eqls $num"
echo $str

#>1 + 1 eqls 2

数组操作

数组成员之间用空格隔开,而不是使用逗号
引用数组成员的时候需要添加大括号

#! /bin/bash
strArray=(
    1
    2
    3
    4
    "EndOfArray"
)
echo ${strArray[0]}
echo ${strArray[4]}
#${Array[index]}

#>1
#>EndOfArray

可以使用 * 或者 @ 来指代数组的所有成员
注意当计算数组成员个数的时候 需要使用{#strArray}

#! /bin/bash
strArray=(
    1
    2
    3
    4
    "EndOfArray"
)
echo ${strArray[@]}
echo ${strArray[*]}

echo ${#strArray}
echo ${#strArray[@]}
echo ${#strArray[*]}

#>1 2 3 4 EndOfArray
#>1 2 3 4 EndOfArray
#>1
#>5
#>5

你可能感兴趣的:(bash语法学习记录)