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做进一步测试
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