
Shell编程知识点汇总(一)
发布日期:2021-05-08 12:54:48
浏览次数:22
分类:精选文章
本文共 1495 字,大约阅读时间需要 4 分钟。
Shell脚本编程简明教程
Shell脚本是一种强大的工具,在服务器端编程中广泛应用。以下是一些实用的Shell脚本知识点,帮助你提升工作效率。
1. 脚本选择
在开始编写Shell脚本前,需要选择合适的解释器。#!/bin/bash
用于普通的Shell脚本,而 #!/usr/bin/python
则用于Python脚本。两者都是脚本性语言,适合快速开发。
2. 命令执行
在Shell中,source
用于在当前shell中运行脚本,而 bash
则会在子shell中运行。如果需要后台运行,可以在命令后面加上&
符号。如果需要在退出当前shell后继续运行脚本,可以在前面加上nohup
命令。
3. Vim快捷键
如果你经常使用 Vim 编辑器,不要忘记以下快捷键:
Ctrl + s
:锁屏当前窗口Ctrl + q
:解锁当前窗口
4. 文字颜色显示
如果需要在终端输出带有颜色的文字,可以使用以下命令:
echo -e “\e[1;31m this is a test\e[0m”
:前景色为红色echo -e “\e[1;40m this is a test\e[0m”
:背景色为红色
5. 文件复制
在Shell中,cp email.py{,.old}
这条命令可以通过通配符来理解。它会将 email.py
和 email.py.old
两个文件进行复制。
6. 变量命名规则
在Shell编程中,变量命名需要遵循以下规则:
- 变量名称只能以字母或下划线开头
- Shell区分大小写
7. 变量替换
以下是一个使用命令替换的例子:
#!/bin/bashtoday=$(date +%F)echo $today
这个脚本会输出当前日期。
8. 环境变量
在Shell中,可以使用以下命令查看和管理环境变量:
env
:显示所有环境变量bashname
:显示最后一个命令的名字$0
:显示脚本名字$*
:显示所有参数$@
:显示所有参数$#
:显示参数个数$$
:显示当前进程ID$!
:显示最后一个后台进程ID$?
:显示上一个命令的返回值(0表示成功)
9. 后台进程管理
如果需要在Shell中运行后台进程,可以通过以下方式实现:
#!/bin/bashping -c 1 127.1.1.1 > /dev/null &
这个命令会将 ping
命令运行在后台。
10. 条件判断
以下是一个条件判断的示例:
#!/bin/baship=127.1.1.1ping -c 1 $ip > /dev/nullif [ $? -eq 0 ]; then echo -e "$ip is up"else echo -e "$ip is down"fi
11. 隐式赋值
如果需要从用户那里获取输入,可以使用 read
命令:
#!/bin/bashread -p "请输入IP地址: " ipping -c 1 $ip > /dev/nullif [ $? -eq 0 ]; then echo -e "$ip is up"else echo -e "$ip is down"fi
12. 位置变量
如果需要通过位置变量来执行脚本,可以参考以下示例:
#!/bin/bashping -c 1 $1 > /dev/nullif [ $? -eq 0 ]; then echo -e "$1 is up"else echo -e "$1 is down"fi
在执行上述脚本时,需要在命令后面添加第一个参数:
./test.sh 127.0.0.1
发表评论
最新留言
能坚持,总会有不一样的收获!
[***.219.124.196]2025年03月22日 14时50分48秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
上周热点回顾(1.23-1.29)
2019-03-06
上周热点回顾(3.20-3.26)
2019-03-06
上周热点回顾(4.24-4.30)
2019-03-06
[故障公告]博客站点1台负载均衡遭遇流量攻击,造成联通与移动用户无法正常访问
2019-03-06
上周热点回顾(5.1-5.7)
2019-03-06
上周热点回顾(5.29-6.4)
2019-03-06
上周热点回顾(6.19-6.25)
2019-03-06
云计算之路-阿里云上:docker swarm 集群故障与异常
2019-03-06
上周热点回顾(2.19-2.25)
2019-03-06
云计算之路-阿里云上:博客web服务器轮番CPU 100%
2019-03-06
云计算之路-阿里云上:服务器CPU 100%问题是memcached连接数限制引起的
2019-03-06
上周热点回顾(3.26-4.1)
2019-03-06
故障公告:IIS应用程序池停止工作造成博客站点无法访问
2019-03-06
【故障公告】极验验证码故障造成无法登录与注册
2019-03-06
上周热点回顾(6.25-7.1)
2019-03-06
【故障公告】10:30-10:45 左右 docker swarm 集群节点问题引发故障
2019-03-06
工作半年的思考
2019-03-06
不可思议的纯 CSS 滚动进度条效果
2019-03-06
【CSS进阶】伪元素的妙用--单标签之美
2019-03-06