Skip to content

Shell脚本编写

更新: 7/14/2025 字数: 0 字 时长: 0 分钟

在公司中后端往往会与服务器打交道,一些任务使用单行命令或者Java代码编写其实是较为复杂的,因此学习Shell脚本对于后端程序员也是格外重要的

创建一个Shell脚本

在你的Linux文件夹下使用vim编辑器创建一个文件,输入

shell
#!/bin/bash  [这个是Linux一般存放shell执行程序的位置]

然后:wq 文件名.sh就可以创建一个shell脚本,接着使用

shell
chmod +x yourfilename

将其转换为可执行文件,再使用

shell
./youfilename

就可以执行这个脚本

shell变量

一些需要遵守的规则:

  • 命名只能使用英文字母,数字和下划线,首个字符不能以数字开头。
  • 强制要求等号的左右两侧不能有空格,变量的值可以使用单引号或双引号,其中单引号默认内部内容均为普通字符串,双引号内的$ ( `(反引号) 均有特殊含义,双引号中可以使用转义字符,单单引号中没有(因为全当普通字符串了)
  • 环境变量的名字建议使用大写进行区分
  • 如果使用变量拼接,可以使用"$变量名"或用 ${变量名}包含变量名。

特殊字符

  • $():用来执行系统命令
  • ():优先执行的命令
  • 反引号:用来执行系统命令
  • {}:用于一串命令执行时,{}中的命令在当前shell中执行,也可以用于变量变形和替换
  • []:用于变量的测试
  • #:用于书写注释

双引号中可以识别反引号和$()

与Linux命令的交互

在Shell脚本中你可以直接书写Linux命令用于将其执行,但是如果你想要将Linux命令的执行结果赋值给变量或者让其拼接在字符串中,则应该在字符串中使用${}

计算

在Shell中简单的运算并不能像C/Java这种语言一样直接写

c
int a=1+2 //Shell中不允许

如果想要进行运算需要使用$(())的方式

sh
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)。

本站访客数 人次      本站总访问量