shell脚本常用方法总结
shell脚本给字符串添加颜色
字颜色:
echo -e "\033[30m 黑色字 \033[0m" echo -e "\033[31m 红色字 \033[0m" echo -e "\033[32m 绿色字 \033[0m" echo -e "\033[33m 黄色字 \033[0m" echo -e "\033[34m 蓝色字 \033[0m" echo -e "\033[35m 紫色字 \033[0m" echo -e "\033[36m 天蓝字 \033[0m" echo -e "\033[37m 白色字 \033[0m" 字背景颜色: echo -e "\033[40;37m 黑底白字 \033[0m" echo -e "\033[41;37m 红底白字 \033[0m" echo -e "\033[42;37m 绿底白字 \033[0m" echo -e "\033[43;37m 黄底白字 \033[0m" echo -e "\033[44;37m 蓝底白字 \033[0m" echo -e "\033[45;37m 紫底白字 \033[0m" echo -e "\033[46;37m 天蓝底白字 \033[0m" echo -e "\033[47;30m 白底黑字 \033[0m" 字体变为红色并且不停的闪烁: echo -e "\033[31m \033[05m 北京欢迎你 \033[0m"
shell脚本判断执行用户
#!/bin/bash if [ `whoami` == "root" ];then echo "是root用户执行" fi
shell curl只返回HTTP状态码
curl -I -m 10 -o /dev/null -s -w %{http_code} www.baidu.com
-I 只返回响应头 -m 允许传输的最长时间 -s 静默模式,不输出任何东西 -w %{http_code} 完成后输出状态码
-o 输出到文件
shell脚本中的一些特殊变量
$$ shell本身的PID $! shell最后运行的后台Process的PID $? 可以获取上一个命令的退出状态 $# 打印传入shell的参数个数 $0 shell本身的文件名 $1~$n 添加到Shell的各参数值。$1是第1参数、$2是第2参数
$@和$*的区别 $@和$*都有打印传入shell的所有变量的意思;当$@和$*不被""双引号包含时,都以"1" "2" "3"的形式输出所有参数; 举个例子说明被""双引号包含时的状态: [root@jump ~]# cat aaa.sh #!/bin/bash fun() { echo "$#" } echo '"$@" 的参数为' $@ echo '"$*" 的参数为' $* echo '"$@" 的参数个数 '$(fun "$@") "个" echo '"$*" 的参数个数' $(fun "$*") "个" 执行结果: [root@jump ~]# bash aaa.sh 1 2 3 "$@" 的参数为 1 2 3 "$*" 的参数为 1 2 3 "$@" 的参数个数 3 个 "$*" 的参数个数 1 个 结论: 当aaa脚本运行后,$@的参数为"1" "2" "3";$*的参数为"1 2 3";所以$@的参数数量为3个;$*的参数数量为1个;
shell脚本中的比较
-eq 等于 -ne 不等于 -gt 左边大于右边 -lt 左边小于右边 -ge 左边大于等于右边 -le 左边小于等于右边
shell的逻辑与或非
逻辑与 "-a" if [command1 -a command2] 两个条件都要满足 逻辑或 "-o" if [command1 -o command2] 两个条件只要满足1个即可 逻辑非 "!" if [! command] 条件表达式的相反结果 ###第二种方式### &&运算符 command1 && command2 command1执行结果为真,则command2才能够被执行;只要有一个命令的执行结果为假,则后面的命令就不会被执行;实现逻辑与的功能; ||运算符 command1 || command2 command1执行结果为假,则执行command2;实现逻辑或的功能;
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 通过 API 将Deepseek响应流式内容输出到前端
· 因为Apifox不支持离线,我果断选择了Apipost!