文章目录
前言
shell的基本使用
一、变量的使用
1、判断变量是否为空
#!/bin/sh
variable=$(cat /etc/linux.txt | grep "linux")
if [ -z "$variable" ]; then
echo "变量为空"
fi
if [ -n "$variable" ]; then
echo "变量不为空"
fi
2、判断变量是否相等
#!/bin/sh
variable1=$(cat /etc/linux1.txt | grep "linux")
variable2=$(cat /etc/linux2.txt | grep "linux")
if [ "$variable1" = "$variable2" ]; then
echo "变量相等"
else
echo "变量不相等"
fi
3、比较两个整数大小
#!/bin/sh
variable1=2
variable2=1
if [ "$variable1" -gt "$variable2" ]; then
echo "variable1大于variable2"
elif [ "$variable1" -lt "$variable2" ]; then
echo "variable1小于variable2"
else
echo "variable1等于variable2"
fi
二、判断路径是否为空
#!/bin/sh
if [ -e /sys/class/gpio ]; then
echo "路径存在"
else
echo "路径不存在"
fi
三、判断文件中git的仓库
#!/bin/sh
find . -type d -name ".git" | while read -r line; do echo "$line"; done
四、shell 遍历代码找到git仓库的路径,然后把每个仓库的最新提交的作者,当前仓库路径,已经仓库下有改动未提交的文件,打印出来
#!/bin/bash
find_git_repos() {
find . -type d -name ".git" | while read -r git_dir; do
echo "$(dirname "$git_dir")"
done
}
print_repo_info() {
local repo_path="$1"
pushd "$repo_path" >/dev/null
# 获取最新提交的作者
author=$(git log -1 --pretty=format:'%an')
# 获取有改动未提交的文件
uncommitted_files=$(git status --porcelain)
echo "仓库路径: $repo_path"
echo "最新提交的作者: $author"
echo "有改动未提交的文件:"
echo "$uncommitted_files"
echo "-----------------------------------"
popd >/dev/null
}
main() {
while read -r repo_path; do
print_repo_info "$repo_path"
done <<< "$(find_git_repos)"
}
main