Shell脚本编写
更新: 7/14/2025 字数: 0 字 时长: 0 分钟
在公司中后端往往会与服务器打交道,一些任务使用单行命令或者Java代码编写其实是较为复杂的,因此学习Shell脚本对于后端程序员也是格外重要的
创建一个Shell脚本
在你的Linux文件夹下使用vim编辑器创建一个文件,输入
#!/bin/bash [这个是Linux一般存放shell执行程序的位置]
然后:wq 文件名.sh就可以创建一个shell脚本,接着使用
chmod +x yourfilename
将其转换为可执行文件,再使用
./youfilename
就可以执行这个脚本
shell变量
一些需要遵守的规则:
- 命名只能使用英文字母,数字和下划线,首个字符不能以数字开头。
- 强制要求等号的左右两侧不能有空格,变量的值可以使用单引号或双引号,其中单引号默认内部内容均为普通字符串,双引号内的$ ( `(反引号) 均有特殊含义,双引号中可以使用转义字符,单单引号中没有(因为全当普通字符串了)
- 环境变量的名字建议使用大写进行区分
- 如果使用变量拼接,可以使用"$变量名"或用 ${变量名}包含变量名。
特殊字符
$()
:用来执行系统命令()
:优先执行的命令反引号
:用来执行系统命令{}
:用于一串命令执行时,{}中的命令在当前shell中执行,也可以用于变量变形和替换[]
:用于变量的测试#
:用于书写注释
双引号中可以识别反引号和$()
与Linux命令的交互
在Shell脚本中你可以直接书写Linux命令用于将其执行,但是如果你想要将Linux命令的执行结果赋值给变量或者让其拼接在字符串中,则应该在字符串中使用${}
计算
在Shell中简单的运算并不能像C/Java这种语言一样直接写
int a=1+2 //Shell中不允许
如果想要进行运算需要使用$(())的方式
a=1
b=2
sum=$((a+b)
判断
与运算想用,shell中也不可以直接的书写判断语句,判断需要依赖于使用[] 运算符,用来进行判断
字符串比较:
[ "string1" = "string2" ]
:如果字符串相等,则为真。[ "string1" != "string2" ]
:如果字符串不相等,则为真。[ -z "string" ]
:如果字符串为空,则为真 (zero length)。[ -n "string" ]
:如果字符串不为空,则为真 (non-zero length)。
数字比较:
[ num1 -eq num2 ]
:如果数字相等 (equal)。[ num1 -ne num2 ]
:如果数字不相等 (not equal)。[ num1 -gt num2 ]
:如果 num1 大于 num2 (greater than)。[ num1 -ge num2 ]
:如果 num1 大于或等于 num2 (greater than or equal)。[ num1 -lt num2 ]
:如果 num1 小于 num2 (less than)。[ num1 -le num2 ]
:如果 num1 小于或等于 num2 (less than or equal)。
文件测试:
[ -e file ]
:如果文件存在 (exists)。[ -f file ]
:如果文件存在且是普通文件 (file)。[ -d directory ]
:如果目录存在 (directory)。[ -r file ]
:如果文件可读 (readable)。[ -w file ]
:如果文件可写 (writable)。[ -x file ]
:如果文件可执行 (executable)。[ -s file ]
:如果文件存在且不为空 (size is greater than zero)。