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
相关推荐
物联网老王1 小时前
Ubuntu Linux Cursor 安装与使用一
linux·运维·ubuntu
艾伦_耶格宇2 小时前
【ACP】阿里云云计算高级运维工程师--ACP
运维·阿里云·云计算
一位摩羯座DBA3 小时前
Redhat&Centos挂载镜像
linux·运维·centos
cui_win4 小时前
【网络】Linux 内核优化实战 - net.core.flow_limit_table_len
linux·运维·网络
风清再凯4 小时前
自动化工具ansible,以及playbook剧本
运维·自动化·ansible
深圳安锐科技有限公司4 小时前
深圳安锐科技发布国内首款4G 索力仪!让斜拉桥索力自动化监测更精准高效
运维·安全·自动化·自动化监测·人工监测·桥梁监测·索力监测
猫头虎4 小时前
猫头虎 AI工具分享:一个网页抓取、结构化数据提取、网页爬取、浏览器自动化操作工具:Hyperbrowser MCP
运维·人工智能·gpt·开源·自动化·文心一言·ai编程
cocologin6 小时前
RIP 技术深度解析
运维·网络·网络协议
庸子7 小时前
基于Jenkins和Kubernetes构建DevOps自动化运维管理平台
运维·kubernetes·jenkins
Lpy25697 小时前
Docker Desktop 安装到D盘(包括镜像下载等)+ 汉化
运维·docker·容器