Shell脚本学习


Shell 脚本学习

基础用法

https://www.runoob.com/linux/linux-shell.html

# echo "Shell HAHAHA"
# 只读变量
readonly my_name="klj35"
# 定义变量
my_name1="fdsfsd"
# 删除变量
unset my_name1
# echo ${my_name}
# echo ${my_name1}
# 拼接字符串
str1="My Name ${my_name}"
# echo ${str1}
# 获取字符串长度
str1Len=${#str1}
# echo ${str1Len}
# 脚本传参
# echo $0
# 数组
my_arry=("haha1" "haha2" "haha3")
# echo ${my_arry[0]}
# echo ${my_arry[1]}
# 数组长度
# echo ${#my_arry[*]}
# 遍历数组
# for item in ${my_arry[*]}; do
#     echo ${item}
# done
# 数学计算,注意反引号和空格
sum=`expr 2 + 2`
# echo ${sum}
# 数学运算二,乘法要用反斜杠
num1=1
num2=2
sum=`expr ${num1} \* ${num2} \* ${num2}`
# echo ${sum}
# if 语句, then 写在同一行要加 ‘;’
# if ((${num1} == ${num2})); then
#     echo "1"
# else
#     echo "2"
# fi
# 重定向输出
# echo "echo \"输出测试\"" > file1.text
# ls > file2.text
# 查看文件内容
# cat file2.text
# 错误输出重定向
# git status 2>>err.log
# 同时保存错误和正常于两个文件内
# ls >>out.log 2>>err.log
# 输出重定向到变量
ls_names=$(ls)
# echo ${ls_names}
# echo ${ls_names} >> file4.text

Shell字符串拼接(连接、合并)

http://c.biancheng.net/view/1114.html

image-20211222153729320

Linux Shell重定向(输入输出重定向)

Linux Shell重定向(输入输出重定向)精讲

http://c.biancheng.net/view/942.html

image-20211222153927315 image-20211222153941338

shell 如何将命令的执行结果重定向到变量

https://blog.csdn.net/microchenhong/article/details/91399031

image-20211222154009039

应用

比对两个分支,获取新增资源

# 分支一的名称
branch1="分支一的名称"
 
# 分支二的名称
branch2="分支二的名称"
 
# 保存的文件名
save_file_name="new_asset_list"
 
 
timeStr=$(date "+%Y-%m-%d_%H_%M_%S")
final_file_name="${save_file_name}__${timeStr}.txt"
 
results=$(git diff --name-status ${branch1} ${branch2} | grep -E "^A.*")
for item in ${results}; do
    if ((${#item} > 1)); then
        echo ${item}
        echo ${item} >> ${final_file_name}
    fi
done
 
echo "导出完成,已保存到文件: ${final_file_name}"

文章作者: 血魂S
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 血魂S !
  目录