分享几个 bash 命令,看你是不是都知道

在 window git 中,Bash(Bourne Again SHell)是最常用的 shell 之一,它通过命令行界面为用户提供与系统进行交互的接口。Bash 脚本是一系列Bash命令的集合,用于自动化执行重复性的任务。本文介绍几个常见的 Bash 命令。

1. 检查参数个数的命令:

首先,我们来看第一个Bash命令,用于检查参数个数。在编写脚本时,通常需要用户通过命令行提供参数。通过检查参数个数,可以确保用户提供了正确数量的参数。如果参数个数不符合预期,脚本可以输出错误信息并退出。这是脚本健壮性的一部分,可以确保脚本在正确的条件下执行。

bash 复制代码
if [ "$#" -ne 1 ]; then
    echo "Usage: $0 <directory>"
    exit 1
fi

2. 检查目录是否存在的命令:

接下来是检查目录是否存在的命令。在脚本中,经常需要操作文件和目录。在尝试对目录进行操作之前,检查目录是否存在是非常重要的。如果目录不存在,脚本应该输出错误信息并退出,以避免后续操作失败或产生不可预期的结果。

bash 复制代码
if [ ! -d "$1" ]; then
    echo "Error: The directory '$1' does not exist."
    exit 1
fi

3. 创建目录的命令(如果不存在):

当我们需要创建目录时,可以使用mkdir命令。mkdir -p选项确保即使父目录不存在,也会一并创建所需的目录结构。这对于确保脚本的健壮性非常有用,因为在实际应用中,用户提供的路径可能并不完整。

bash 复制代码
mkdir -p "$target_dir"

4. 复制文件的命令:

复制文件是脚本中常见的操作之一。使用cp命令可以方便地将源文件复制到目标位置。在复制完成后,检查上一个命令是否成功执行是很重要的。通过检查$?变量的值,可以确定上一个命令的退出状态。如果退出状态不为0,表示命令执行失败,脚本可以输出错误信息并退出。

bash 复制代码
cp "$source_file" "$target_file"

5. 检查上一个命令(cp)是否执行成功的命令:

bash 复制代码
if [ $? -ne 0 ]; then
    echo "Error: Failed to copy $source_file to $target_file"
    exit 1
fi

6. 使用sed命令替换文件中的文本:

文本处理是脚本自动化的另一个重要方面。Bash提供了强大的文本处理工具,如sed命令。sed命令可以对文本文件进行各种操作,如替换文本、删除行等。在脚本中,我们可以使用sed命令对文件进行批量处理,实现自动化文本编辑。

bash 复制代码
sed -i 's/puppeteer-core/puppeteer/g' "$target_file"

7. 使用sed命令删除包含特定文本的行:

bash 复制代码
sed -i '/chromePath/d' "$target_file"

8. 获取文件或目录的绝对路径:

在处理文件路径时,获取文件或目录的绝对路径是一个常见的需求。通过readlink命令,我们可以方便地获取文件或目录的绝对路径。这对于确保脚本中使用的路径是正确的非常有用,尤其是在脚本需要在不同目录下执行时。

bash 复制代码
absolute_path=$(readlink -f $target_file)

9. 字符串替换和拼接的命令(用于生成新的文件路径):

字符串替换和拼接是Bash脚本中常见的操作。通过字符串替换,我们可以动态地生成文件路径或文件名。字符串拼接则可以将多个字符串组合成一个新的字符串。这些操作在构建复杂的文件路径或生成唯一的文件名时非常有用。

bash 复制代码
new_path="c:/${absolute_path#/c/}"

10. 获取目录路径的命令(从文件路径中):

bash 复制代码
dir=$(dirname "$new_path")

11. 将文本输出到剪贴板的命令(Windows系统):

在Windows系统中,将文本输出到剪贴板是一个常见的需求。虽然Bash本身没有直接提供这样的功能,但我们可以使用Windows系统提供的clip.exe命令来实现。通过管道操作符将文本传递给clip.exe命令,就可以将文本复制到剪贴板中。这对于快速在Windows系统中复制文本非常有用。

bash 复制代码
echo "$dir" | clip.exe

12. 检查文件是否存在的命令:

最后,检查文件是否存在是脚本中常见的操作之一。在尝试读取或修改文件之前,确保文件存在是非常重要的。如果文件不存在,脚本应该输出错误信息并退出,以避免后续操作失败。

bash 复制代码
if [ ! -f "$title_file" ]; then
    echo "目录 $directory 下不存在 Title.md 文件。"
    exit 1
fi

本文介绍的这几个 bash 脚本都是从实际工作中提炼出来的,是比较常用的命令。如果能够综合的灵活运用这些Bash命令,就可以编写出功能强大的脚本,实现自动化执行重复性的任务。

而使用脚本脚本的好处是显而易见的:可以简化复杂的操作流程,提高工作效率,减少人为错误。同时,脚本还可以用于批量处理大量文件,实现数据的自动化分析和处理。

相关推荐
星如雨落4 小时前
Linux shell脚本对常见图片格式批量转换为PDF文件
linux·shell
qq_433618442 天前
shell 编程(二)
开发语言·bash·shell
酥心糖小可爱3 天前
shell脚本案例
shell·脚本
桃酥4037 天前
GCC实用干货
linux·shell·gcc
月光技术杂谈12 天前
5G模组AT命令脚本-命令发送及回显读取
linux·5g·shell·5g模组·5g终端·at命令
都小事儿15 天前
爽解报错:/bin/bash^M: bad interpreter: No such file or directory
linux·bash·shell
Mr.朱鹏19 天前
shell脚本实战案例
java·spring boot·spring·java-ee·kafka·maven·shell
laoyouzhazi19 天前
Ubuntu ufw + Python3 add / remove port-rule
linux·ubuntu·shell·防火墙·python3·ufw
冷心笑看丽美人22 天前
SHELL脚本初体验(Linux网络服务器 22)
linux·服务器·shell·redhat
suwith24 天前
通过shell脚本分析部署nginx网络服务
shell