“#”在Shell中有多重用途。
1.用于注释
注释可以是独立的一行,也可以存在于本行命令之后,与命令最后一个字符要有一个空格。
例如:
#这是一行注释
echo "hello world" #这行输出hello world,注释在本行命令语句之后,中间有一个空格
2.“#!”是一个例外
如果以“#!”开头的行,不是注释,它表明本脚本使用指定的解释器运行。
例如:
#!/bin/bash
指定脚本使用bash shell解释
3.作为一个普通字符
如果和转义字符“\”一起使用,那么“#”当做普通字符使用,不代表注释。
例如:
echo xyz\#
命令输出结果:“xyz#”
4.与${}结合使用,实现参数替换
例如:
echo ${PATH#*:}
此命令将变量PATH从左侧第一个“:”字符开始左侧部分舍弃。
如下图,红框部分被舍弃。
echo ${PATH##*:}
此命令将变量PATH从左侧最后一个“:”字符开始左侧部分舍弃。
如下图,篮框部分之外的部分被舍弃。
5.与单引号和双银行结合使用的效果
与单引号和双银行结合使用的效果等同于普通字符
例如:
echo "xyz #"
echo 'xyz #'
两个命令输出结果都是:xyz #