分享几个 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命令,就可以编写出功能强大的脚本,实现自动化执行重复性的任务。

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

相关推荐
vortex519 小时前
进程管理器大横评:从 PM2 到 Systemd 的选型与实战
linux·shell·进程管理
Irene19913 天前
Shell 相关基础入门,在 Ubuntu 与 CentOS Shell 中的语法差异总结(bash、dash、sh)
shell
小肝一下3 天前
5. 基础IO
android·linux·shell·基础io·操作系统底层·伊涅夫·伊雷娜
红茶要加冰5 天前
七、正则表达式
linux·运维·正则表达式·shell
lifewange5 天前
WSL安装问题解决
shell
AdCj35 天前
放弃第三方框架,用系统自带工具玩转 Shell 测试
shell·测试
红茶要加冰5 天前
九、文本处理三剑客——sed
linux·运维·服务器·正则表达式·shell
红茶要加冰6 天前
五、流程控制之循环
linux·运维·shell
红茶要加冰6 天前
二、shell中的变量
linux·运维·shell
Irene19916 天前
大数据开发(Hadoop/Spark 生态)在 Ubuntu 环境下:5 个高频率使用的功能性 Shell 脚本
shell