02 Shell Script注释和debug

Shell Script注释和debug

一、ShellScript注释

​ # 代表不解释不执行

​ 语法:#

sh 复制代码
# 创建myshell.sh文件
[root@localhost ~]# vi myshell.sh  


# 写入内容
#!/bin/bash

# 打印hello world(正确)
echo "hello world"
echo "hello 2" # 注释2(正确)
echo "hello 3"# 注释3(错误,代码和注释需要空格隔开)


# 查看打印结果
[root@localhost ~]# bash myshell.sh 
hello world
hello 2
hello 3# 注释3

二、ShellScript Debug

sh 复制代码
# 创建myshell.sh文件
[root@localhost ~]# vi myshell.sh  


# 写入内容
#!/bin/bash

# 打印hello world
echo "hello world

​ #bash [-nvx] scripts.sh

​ 选项与参数:

​ -n :不要运行script,仅查询语法的问题;

sh 复制代码
[root@localhost ~]# bash -n myshell.sh
myshell.sh: line 4: unexpected EOF while looking for matching `"'
myshell.sh: line 5: syntax error: unexpected end of file

​ -v :再运行sccript前,先将整个scripts 的内容输出到屏幕上;

sh 复制代码
[root@localhost ~]# bash -v myshell.sh
#!/bin/bash

# 打印hello world
echo "hello world
myshell.sh: line 4: unexpected EOF while looking for matching `"'
myshell.sh: line 5: syntax error: unexpected end of file

​ -x :将执行到的script内容显示到屏幕上,这是很有用的参数!

sh 复制代码
[root@localhost ~]# bash -x myshell.sh
myshell.sh: line 4: unexpected EOF while looking for matching `"'
myshell.sh: line 5: syntax error: unexpected end of file

三、Shell 扩展

​ 使用选项-vx做进一步测试

创建一个脚本文件test.sh

sh 复制代码
# 创建sh文件
[root@localhost ~]# vi myshell.sh 


# 写入内容
#!/bin/bash
mkdir ./{a,b,c}1
echo "ok"


# 查看内容(和实际内容不同)
[root@localhost ~]# bash -x myshell.sh
+ mkdir ./a1 ./b1 ./c1
+ echo ok
ok

​ #bash -vx test.sh

​ -v选项使得脚本中的命令显示出来

​ -x选项显示shell对脚本命令的解释结果,即shell解释器扩展命令字符串的结果

​ 扩展知识:

​ shell扩展:花括号扩展

​ 不能出现在引用中

​ 花括号前后的前缀是可选的

​ 最少出现一个逗号

sh 复制代码
mkdir ./{a,b,c}1

​ shell扩展:变量参数扩展

​ 符号$对使用的bash而言是获取参数变量值的特殊标识

​ 完整写法:${parameter}

sh 复制代码
echo $PATH

​ 通过使用tree命令显示当前目录的属性结构

​ *通过yum install tree -y来安装该命令

sh 复制代码
# 下载tree软件包
[root@localhost ~]# yum -y install tree

# 查看当前目录结构
[root@localhost ~]# tree
.
├── a1
├── b1
├── c1
└── myshell.sh
相关推荐
网络笨猪43 分钟前
# Nginx企业级全套配置\+排错手册
运维·nginx
Yupureki1 小时前
《Linux网络编程》8.网络层IP原理
linux·运维·服务器·网络·ip
yyuuuzz1 小时前
aws亚马逊入门常见认知误区
运维·服务器·网络·云计算·github·aws
DeepFlow 零侵扰全栈可观测2 小时前
运动战:AI 时代 IT 运维的决胜之道——DeepFlow 业务全链路可观测性的落地实践
运维·网络·人工智能·arcgis·云计算
林叔聊渠道分销3 小时前
saas产品运营案例 | 联盟营销计划如何帮助企业提高销售额?
运维·产品运营·sass·流量运营·用户运营
志栋智能4 小时前
告别报告堆砌:超自动化巡检的智能分析与洞察
运维·服务器·网络·人工智能·自动化
雅斯驰6 小时前
AES-128加密+滚动码认证:ATA5702W如何防御中继攻击与信号重放
运维·单片机·嵌入式硬件·物联网·自动化
网络与设备以及操作系统学习使用者6 小时前
直连路由优先级最高
运维·网络·学习·华为·智能路由器
goyeer6 小时前
【ITIL4】34服务实践 - 发布管理
运维·企业数字化·信息化·it管理·itil·it治理
小王C语言6 小时前
xshell免密登录
linux·运维·服务器