shell编程
1.
$0
脚本名称
$$
当前脚本进程
2.
kill -0 pid 用来检查一个进程是否存在,存在返回0;不存在返回1
3.
-eq 等于
-ne 不等于
-gt 大于
-lt 小于
-ge 大于等于
-le 小于等于
4. 后台启动
1 2 | . /test .sh & 终端关闭,进程结束。 nohup . /test .sh & 退出shell终端不会中断脚本 |
5. shell操作数据库
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | #删除此时间之前的数据库或表 DB_CONNECTOR= "-h 10.10.10.10 -P 3306 -u user -p123123" DB_CMD= "mysql $DB_CONNECTOR" FILENAME=database.txt cat $FILENAME | while read basename do $DB_CMD -e "use ${basename};show tables;" >> rt_check_table.txt flag=0; cat rt_check_table.txt | while read tablename do if [ $flag - ne 0 ]; then echo "DROP TABLE IF EXISTS ${basename}.${tablename};SELECT sleep(2);" >> rt_check_delete.sql fi let flag++<br> #$DB_CMD-e "$sql" | tail -n +2 > "result.txt" #表示取第二行以后的结果 done rm -rf rt_check_table.txt done |
6. 常用命令
1 | tail -n +2 file .log #第二行(包含)以后的数据。<strong>read</strong> user_id state < $FILE_TEMP #读取FILE_TEMP文件中的2列数据,分别赋值给两个变量。<br><br>pid=`ps -ef | grep supervise.payserverquery | grep -v grep | awk '{print $2}'` #获取进程中的pid<br><br>killall -SIGHUP 3009 重新载入配置,重启而不是杀死进程 |
7. shell数组
1 2 | list=( "xiaoming" "qiang" "wei" ) people=${list[1]} #qiang |
8. while循环实现守护进程功能
1 2 3 4 5 6 7 8 9 10 | app_name=$1 #app_name启动文件路径 while [ 1 ]; do app_base_name=` basename $app_name` #去掉前面路径后的进程名 pid=` /bin/ps --noheaders -o pid -C $app_base_name` if [ "$pid" == "" ]; then #如果进程为空,启动后台启动进程 /usr/bin/nohup $app_name &> /dev/null & wait $child_pid #阻塞 fi sleep 1 done |
9.
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南