• Bash 脚本常用命令


    一、基础命令

    1. echo:输出内容到屏幕或文件。

    示例:输出“Hello, World!”到屏幕。

    echo "Hello, World!"
    
    • 1
    1. pwd:显示当前工作目录。

    示例:查看当前目录路径。

    pwd
    
    • 1
    1. cd:改变当前工作目录。

    示例:切换到用户主目录。

    cd ~
    
    • 1
    1. ls:列出目录内容。

    示例:列出当前目录所有文件和文件夹

    ls
    
    • 1

    二、文件操作

    1. cat:查看文件内容。

    示例:查看文件example.txt的内容。

    cat example.txt
    
    • 1
    1. grep:在文件中搜索指定内容。

    示例:在example.txt中搜索包含“error”的行。

    grep "error" example.txt
    
    • 1
    1. awk:处理文本,读取文件字段。

    示例:读取data.txt文件的第一列(默认以空格或制表符分隔)。

    awk '{print $1}' data.txt
    
    • 1
    1. sed:流编辑器,用于对输入流(文件或管道)进行基本的文本转换。

    示例:将example.txt中所有的“apple”替换为“orange”。

    sed 's/apple/orange/g' example.txt
    
    • 1
    1. 读取文件示例

    Bash 脚本中,你可以使用 grepawk 或者 sed 来读取 gradle.properties 文件的某个字段内容。这里是一个使用 grepawk 的示例:

    假设你有一个 gradle.properties 文件,内容如下:

    versionName=1.0.0
    versionCode=1
    someOtherProperty=value
    
    • 1
    • 2
    • 3

    如果你想读取 versionName 字段的值,你可以使用以下 Bash 脚本:

    #!/bin/bash
    
    # 指定gradle.properties文件的路径
    GRADLE_PROPERTIES_FILE="path/to/your/gradle.properties"
    
    # 使用grep和awk读取versionName字段的值
    VERSION_NAME=$(grep "versionName" "$GRADLE_PROPERTIES_FILE" | awk -F'=' '{print $2}')
    
    # 打印读取到的值
    echo "versionName: $VERSION_NAME"
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    在这个脚本中:

    • grep "versionName" "$GRADLE_PROPERTIES_FILE" 会搜索包含 versionName 的行。
    • awk -F'=' '{print $2}' 会以 = 作为字段分隔符,并打印出第二个字段的值,也就是 versionName 对应的值。

    三、字段操作示例

    假设我们有一个名为data.txt的文件,内容如下:

    John 25 Engineer
    Jane 30 Doctor
    Bob 28 Lawyer
    
    • 1
    • 2
    • 3
    1. 读取某个文件的字段

    读取data.txt中每个人的名字(第一列):

    awk '{print $1}' data.txt
    
    • 1
    1. 改写某个文件的字段

    data.txt中每个人的年龄(第二列)增加 5 岁:

    awk '{$2 += 5; print}' data.txt > modified_data.txt
    
    • 1

    这里使用了awk的算术运算功能,$2 += 5表示将第二列的值增加 5,然后print输出整行内容到modified_data.txt

    四、条件判断和循环

    Bash 脚本中也经常用到条件判断和循环结构。

    1. if:条件判断。

    示例:检查文件是否存在。

    if [ -f example.txt ]; then
        echo "File exists."
    else
        echo "File does not exist."
    fi
    
    • 1
    • 2
    • 3
    • 4
    • 5
    1. for:循环遍历。

    示例:遍历当前目录下的所有文件。

    for file in *; do
        echo "$file"
    done
    
    • 1
    • 2
    • 3
    1. while:当条件为真时循环。

    示例:从 1 数到 5。

    count=1
    while [ $count -le 5 ]; do
        echo "$count"
        count=$((count + 1))
    done
    
    • 1
    • 2
    • 3
    • 4
    • 5

    五、其他常用命令

    1. touch:创建空文件或更新文件时间戳。

    示例:创建一个新文件newfile.txt

    touch newfile.txt
    
    • 1
    1. rm:删除文件或目录。

    示例:删除文件example.txt

    rm example.txt
    
    • 1
    1. cp:复制文件或目录。

    示例:将file1.txt复制到file2.txt

    cp file1.txt file2.txt
    
    • 1
    1. mv:移动或重命名文件或目录。

    示例:将file1.txt重命名为file2.txt

    mv file1.txt file2.txt
    
    • 1
  • 相关阅读:
    从 Nauty 数据结构出发认识群论
    Threejs_04 gui调试开发
    ubuntu上运行make menuconfig两种报错
    SpringBoot源码解读与原理分析(三十二)SpringBoot整合JDBC(一)JDBC组件的自动装配
    【动画进阶】极具创意的鼠标交互动画
    Spring-事务管理-加强
    MySQL中使用函数会使索引失效?
    向量数据库,能让AI再次起飞吗?
    Axure原型设计工具怎么样?有替代软件吗?
    Flutter GetX的使用
  • 原文地址:https://blog.csdn.net/Mr_JingFu/article/details/137896440