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

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

相关推荐
keep__go2 小时前
Linux 批量配置互信
linux·运维·服务器·数据库·shell
Selina K6 天前
shell脚本知识点记录
笔记·shell
Dangks9 天前
[运维] 服务器本地网络可用性检查脚本
linux·运维·服务器·shell·network·系统工具
DreamADream11 天前
Shell编程中关于用户操作报错`用户无法登录`
shell
江上清风山间明月14 天前
shell脚本编写注意细节 ==、=等的区别
bash·shell·注意·相等·细节·==·=
188_djh18 天前
# linux从入门到精通-从基础学起,逐步提升,探索linux奥秘(十六)--shell
linux·运维·bash·shell·shell入门·shell变量·linux入门到精通
RamboPan18 天前
Mac 使用脚本批量导入 Apple 歌曲
macos·自动化·shell·apple·script
I'm Jie19 天前
一站式学习 Shell 脚本语法与编程技巧,踏出自动化的第一步
linux·ssh·shell·shell脚本·shell编程
rainsc22 天前
当多核变单核:破解CPU核心神秘失踪的终极指南!
服务器·shell
一丝晨光22 天前
编程语言支持中文变量吗?三字符组是什么来源?为什么结构体要考虑对齐?如何确定语言使用的地址是不是物理地址?用户态应用程序如何获取变量的物理地址?
java·linux·c++·c·shell·结构体·虚拟地址