一、基础命令
- echo:输出内容到屏幕或文件。
示例:输出“Hello, World!”到屏幕。
echo "Hello, World!"
- pwd:显示当前工作目录。
示例:查看当前目录路径。
pwd
- cd:改变当前工作目录。
示例:切换到用户主目录。
cd ~
- ls:列出目录内容。
示例:列出当前目录所有文件和文件夹。
ls
二、文件操作
- cat:查看文件内容。
示例:查看文件example.txt
的内容。
cat example.txt
- grep:在文件中搜索指定内容。
示例:在example.txt
中搜索包含“error”的行。
grep "error" example.txt
- awk:处理文本,读取文件字段。
示例:读取data.txt
文件的第一列(默认以空格或制表符分隔)。
awk '{print $1}' data.txt
- sed:流编辑器,用于对输入流(文件或管道)进行基本的文本转换。
示例:将example.txt
中所有的“apple”替换为“orange”。
sed 's/apple/orange/g' example.txt
- 读取文件示例
在 Bash 脚本中,你可以使用 grep
和 awk
或者 sed
来读取 gradle.properties
文件的某个字段内容。这里是一个使用 grep
和 awk
的示例:
假设你有一个 gradle.properties
文件,内容如下:
versionName=1.0.0
versionCode=1
someOtherProperty=value
如果你想读取 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"
在这个脚本中:
grep "versionName" "$GRADLE_PROPERTIES_FILE"
会搜索包含versionName
的行。awk -F'=' '{print $2}'
会以=
作为字段分隔符,并打印出第二个字段的值,也就是versionName
对应的值。
三、字段操作示例
假设我们有一个名为data.txt
的文件,内容如下:
John 25 Engineer
Jane 30 Doctor
Bob 28 Lawyer
- 读取某个文件的字段
读取data.txt
中每个人的名字(第一列):
awk '{print $1}' data.txt
- 改写某个文件的字段
将data.txt
中每个人的年龄(第二列)增加 5 岁:
awk '{$2 += 5; print}' data.txt > modified_data.txt
这里使用了awk
的算术运算功能,$2 += 5
表示将第二列的值增加 5,然后print
输出整行内容到modified_data.txt
。
四、条件判断和循环
Bash 脚本中也经常用到条件判断和循环结构。
- if:条件判断。
示例:检查文件是否存在。
if [ -f example.txt ]; then
echo "File exists."
else
echo "File does not exist."
fi
- for:循环遍历。
示例:遍历当前目录下的所有文件。
for file in *; do
echo "$file"
done
- while:当条件为真时循环。
示例:从 1 数到 5。
count=1
while [ $count -le 5 ]; do
echo "$count"
count=$((count + 1))
done
五、其他常用命令
- touch:创建空文件或更新文件时间戳。
示例:创建一个新文件newfile.txt
。
touch newfile.txt
- rm:删除文件或目录。
示例:删除文件example.txt
。
rm example.txt
- cp:复制文件或目录。
示例:将file1.txt
复制到file2.txt
。
cp file1.txt file2.txt
- mv:移动或重命名文件或目录。
示例:将file1.txt
重命名为file2.txt
。
mv file1.txt file2.txt