4. Bash中的引号
引号是在任何编程语言中引用字符串的标准做法。引号用于处理带有空格字符的文本、文件名。阅读本教程以了解单引号和双引号之间的区别。
4.1 引用字符串
#!/bin/bashecho ‘我是单引号’echo “我是双引号”
上面脚本会输出
我是单引号我是双引号
4.2 引用变量
shell 变量扩展仅适用于双引号。如果您在单引号中定义任何变量将不起作用。
#!/bin/bashNAME=”Welcome China!”echo “$NAME”echo ‘$NAME’
上面脚本会输出
Welcome China!$NAME
5. 调试 Bash 脚本
Bash 脚本提供了在运行时调试脚本的选项。您在 shell 脚本中使用“set -xv”命令或在执行脚本时在命令行上使用 -xv。
5.1 语法
$ bash -xv hello_world.sh
5.1.1 示例 – 在脚本中启用调试
#!/bin/bashset -xv # 这行代码将会触发调试模式cd /var/log/for i in “*.log”; dodu -sh $idone
5.1.2 示例 – 启用调试运行时
vim hello_wolrd.sh# 写入以下内容#!/bin/bashset -xv # 这行代码将会触发调试模式cd /var/log/for i in “*.log”; dodu -sh $idone
执行以下命令
$ bash -xv script.sh
6. Bash 退出代码
退出代码是一个介于 0 和 255 之间的数字。这是子进程完成后返回给父进程的值。换句话说,它表示我们函数的最后一个命令的退出状态。
基于命令或程序返回的退出代码值将成功执行或不执行。
- Success – 0 表示成功
- failure – 非0 表示失败
6.1 示例1
编写程序在 /tmp/test.txt 文件中写入一些内容并检查命令执行成功与否。
#!/bin/bashecho “hi” > /tmp/test.txtif [ $? -eq 0 ]; then echo “执行成功”else echo “执行失败, 不能写入 /tmp/test.txt”fi
6.2 示例2
编写一个程序来搜索文件中的字符串并检查字符串是否存在。
#!/bin/bashSTRING=”root”if grep ${STRING} /etc/passwdthen echo “恭喜,成功找到字符串”else echo “很遗憾,没有找到字符串”fi
以上代码会输出
root:x:0:0:root:/root:/bin/bashoperator:x:11:0:operator:/root:/sbin/nologin恭喜,成功找到字符串