概述
本篇博客记录一下 shell 编程的一些常规操作,欢迎大家留言评论。
第一个 shell 脚本
在 Linux 下使用文本编辑器编写如下的代码,并保存为test.sh
,可以不要后缀名,此时该文件一般是没有可执行权限的。使用命令chmod +x test.sh
添加可执行权限,然后./test.sh
即可执行。
#!/bin/bash
# 指定解释器,也可以用 #!/bin/sh
echo "fanxinli" # 回显字符串 fanxinli
编写 shell 脚本也可以不用解释器,使用如下命令运行程序。
/bin/bash test.sh
变量
shell 脚本定义变量最坑的地方就是要注意=
前后不应该有空格,赋值时不加美元符,使用时才加美元符。
#!/bin/bash
var="fanxinli"
echo $var
echo ${var} # 给变量加边界
# 只读变量
name="fanxinli"
readonly name
# name="lifanxin" ⇒ 再进行赋值是错误的
# 删除变量
unset var # 不能用于删除只读变量
字符串和引号
shell 编程中有三种引号,单引号、双引号、反引号,各有各的作用。
#!/bin/bash
name="fanxinli"
str='Hello, $name'
echo $str
# Hello, $name ⇒ 单引号中变量无效
str="Hello, $name"
echo $str
# Hello, fanxinli ⇒ 双引号可以
# 拼接字符串
str1="Hello "${name}"!"
str2='Hello '${name}'!'
echo $str1, $str2
# hello fanxinli!, hello fanxinli!
# 获取字符串长度
echo ${#str1}
# 字符串截取
echo ${str1:1:4} # ello
# 反引号执行命令
res=`ls`
echo $res
数组
shell 编程中只有一维数组。
#!/bin/bash
# 数组定义
arr=(1 2 3) # 使用空格隔开
arr[0]=5
# 数组元素获取
echo ${arr[0]} # 单个
echo ${arr[@]} # 所有
echo ${arr[*]} # 所有
# 获取数组长度
echo ${#arr[@]}
echo ${#arr[*]}
注释
#!/bin/bash
# 单行注释
:<<EOF
多行注释
多行注释
多行注释
EOF
:<<'
多行注释
多行注释
多行注释
'
:<<!
多行注释
多行注释
多行注释
!
总结
不忘初心,砥砺前行!