shell编写时的格式经验
【;】个人感觉可以有效减少脚本行数,尽管看上去不是很美。
e.g:
举个简单例子
脚本:
#!/bin/bash
echo " ######################"
echo " # 计算机信息 #"
echo " ######################"
echo " "
echo 时间:
date +%x%Z
echo " "
echo 主机名:
hostname
echo " "
echo 机器型号:
dmidecode |grep 'Product Name'|head -1
echo " "
echo SN号:
dmidecode -s system-serial-number
echo " "
echo CPU信息:
cat /proc/cpuinfo |grep 'model name' |uniq #去掉重复
#cat /proc/cpuinfo |grep 'model name' |head -1 #显示第一条
echo CPU核数:
cat /proc/cpuinfo |grep 'cpu cores' |wc -l
echo " "
echo 内存使用情况:
free -l
echo " "
echo 磁盘状况:
df -h
echo " "
echo 操作系统版本:
cat /etc/issue|head -1
echo " "
echo 操作系统详情:
uname -a
echo " "
echo 运行状况:
uptime
echo " "
echo 网络信息:
ifconfig |grep 'inet addr'|head -1
echo " "
echo 运行的服务:
netstat -lnp
与以下脚本是一样的
#!/bin/bash
echo " ######################"
echo " # 计算机信息 #"
echo " ######################"
echo " "
echo 时间:
date +%x%Z;echo " ";echo 主机名:
hostname;echo " ";echo 机器型号:
dmidecode |grep 'Product Name'|head -1;echo " ";echo SN号:
dmidecode -s system-serial-number;echo " ";echo CPU信息:
cat /proc/cpuinfo |grep 'model name' |uniq #去掉重复
#cat /proc/cpuinfo |grep 'model name' |head -1 #显示第一条
echo CPU核数:
cat /proc/cpuinfo |grep 'cpu cores' |wc -l ;echo " ";echo 内存使用情况:
free -l;echo " ";echo 磁盘状况:
df -h;echo " ";echo 操作系统版本:
cat /etc/issue|head -1;echo " ";echo 操作系统详情:
uname -a;echo " ";echo 运行状况:
uptime;echo " ";echo 网络信息:
ifconfig |grep 'inet addr'|head -1;echo " ";echo 运行的服务:
netstat -lnp
但在命令的行数上却少了很多。这全是【;】的作用行数对比第二种21行,第一种43行。
【"】与【'】
Shell中的单引号和双引号的区别
单引号和双引号都能关闭shell对特殊字符的处理。
不同的是,双引号没有单引号严格:
单引号关闭所有有特殊作用的字符;
双引号只要求shell忽略大多数,下面3种特殊字符不被忽略:
①美元符号
②反引号
③反斜杠
不忽略美元符号意味着shell在双引号内部也进行变量名替换。
下面用一个简单的shell程序要说明一下。
[root@monitor test]# name=zhuzhu
[root@monitor test]# echo "$name"
zhuzhu
[root@monitor test]# echo '$name'
$name
【.】通常表示当前目录(或者是文件名的一部分)
e.g:
[root@monitor mj]# ls
a503
[root@monitor mj]# mv a ./b
[root@monitor mj]# ls
b
e.g:
[root@monitor mj]# cat cpfile
#!/bin/bash
cp /root/shell/* .
[root@monitor mj]# ls
cpfile
[root@monitor mj]# ./cpfile
[root@monitor mj]# ls
abc cpfile timesync.sh
[root@monitor mj]# ls /root/shell/
abc timesync.sh
【\】转义符[反斜线, 即\]. 一种对单字符的引用机制. (取消特殊字符的作用)
[root@monitor test]# cat ceshi.sh
#!/bin/bash
name=zhuzhu
echo $name
[root@monitor test]# ./ceshi.sh
zhuzhu
如果修改为
#!/bin/bash
name=zhuzhu
echo \$name
[root@monitor test]# ./ceshi.sh
\$name
shell学习笔记(三)
原创jinga50334 博主文章分类:linux/unix/开源 ©著作权
文章标签 职场 shell 休闲 shell学习,shell笔记 文章分类 运维
上一篇:时间服务器地址
下一篇:shell学习笔记(四)
-
【CAD建模号】学习笔记(三):图形绘制区1
本期学习笔记介绍【CAD建模号】中图形绘制区的二维工具、面建模、实体工具和文本工具。
角点 二维 图形绘制 CAD建模号 模宗 -
HarmonyOS NEXT 学习笔记
鸿蒙os 页面一键置灰
页面效果 API -
Linux Shell 学习笔记(三)--Shell变量
Shell变量:Shell变量的定义、删除变量、只读变量、变量类型
shell 脚本 编程语言 bash 变量名 -
spark学习笔记三:spark-shell
1.spark-shell 一般用来写脚本验证程序正确性;开发数据一般用集成工具idea,python等 ...
ide python 验证程序 数据 spark