Bash Shell 脚本编程入门详解
目录
1. 创建和执行 Bash Shell 脚本
什么是 Shell 脚本
脚本编写工具推荐
指定命令解释器(Shebang)
2. 执行 Bash Shell 脚本
设置执行权限
运行脚本的三种方式
3. 对特殊字符加引号
特殊字符转义方法
转义示例详解
引号类型区别
总结
1. 创建和执行 Bash Shell 脚本
什么是 Shell 脚本
Shell 脚本是一种包含命令列表的可执行文件,可以自动化执行系统管理任务。通过将多个 Linux 命令组合在一起,并加入编程逻辑,可以解决复杂的实际问题。
示例解析:
#!/bin/bash
echo "Hello, World"
date
-
这是一个最简单的 Shell 脚本
-
第一行是指定解释器的特殊指令
-
后面是依次执行的命令
脚本编写工具推荐
使用高级文本编辑器(如 vim 或 emacs)的好处:
-
语法高亮显示
-
自动识别常见错误
-
帮助检查引号、括号匹配等问题
指定命令解释器(Shebang)
bash
#!/bin/bash
-
#!称为 she-bang 或 hash-bang -
必须是脚本的第一行
-
告诉系统使用哪个解释器来执行脚本
-
对于 Bash 脚本,使用
/bin/bash
2. 执行 Bash Shell 脚本
设置执行权限
chmod +x script.sh
chmod 755 script.sh
-
脚本必须有执行权限才能运行
-
使用
chmod命令修改权限 -
使用
chown可以设置特定用户或组的权限
运行脚本的三种方式
方式一:使用绝对路径
/home/user/bin/hello
方式二:使用相对路径
方式三:通过 PATH 环境变量
hello
注:path环境变量也是个路径,你光给个名字时系统默认会去path环境变量里找这个文件
感兴趣可以查看:Linux PATH 环境变量简单介绍-CSDN博客
PATH 环境变量示例:
[user@host ~]$ echo $PATH
/home/user/.local/bin:/home/user/bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/sbin:/usr/local/bin
查找命令位置:
[user@host ~]$ which hello
~/bin/hello
重要提示:
-
避免使用与系统命令相同的脚本名
-
PATH 会执行找到的第一个匹配命令
3. 对特殊字符加引号
特殊字符转义方法
Bash 中有特殊含义的字符需要转义:
-
反斜杠
\:转义单个字符 -
单引号
'':按字面解释所有字符 -
双引号
"":允许变量替换,阻止其他扩展
转义示例详解
示例1:转义 # 符号
[user@host ~]$ echo # not a comment
# (这里只输出空行,因为#后面都被视为注释)[user@host ~]$ echo \# not a comment
# not a comment
-
\#让 # 不被解释为注释符号
示例2:多种转义方式
[user@host ~]$ echo \# not a comment \#
# not a comment #[user@host ~]$ echo '# not a comment #'
# not a comment #
-
单引号内的所有字符都按字面意思处理
引号类型区别
双引号的特点:
[user@host ~]$ var=$(hostname -s); echo $var
host
[user@host ~]$ echo "***** hostname is $var *****"
***** hostname is host *****
-
允许变量替换
$var -
允许命令替换
$(command) -
阻止文件名扩展(globbing)
单引号的特点:
[user@host ~]$ echo 'Hostname is $var'
Hostname is $var
-
所有字符都按字面意思处理
-
不进行变量替换
-
不进行命令替换
混合使用示例:
总结
Shell 脚本编程是系统管理的重要技能,通过本文介绍的四个核心概念:
-
脚本创建:理解 shebang 和编辑器选择
-
脚本执行:掌握权限设置和运行方式
-
字符转义:学会处理特殊字符
-
输出处理:使用 echo 和重定向
