-
Notifications
You must be signed in to change notification settings - Fork 13
prog_002
Zhang Jc edited this page Mar 30, 2017
·
6 revisions
变量 | 含义 |
---|---|
$n | 传递给脚本或函数的参数。n 是一个数字,表示第几个参数。例如,第一个参数是$1,第二个参数是$2。$0表示当前脚本的文件名 |
$# | 传递给脚本或函数的参数个数。 |
$* | 以整个字符串的形式,传递给脚本或函数的所有参数。 |
$@ | 以列表的形式名,传递给脚本或函数的所有参数。 |
$? | 上个命令的退出状态,或函数的返回值。 |
$$ | 当前Shell进程ID。对于 Shell 脚本,就是这些脚本所在的进程ID。 |
shell 脚本貌似不像C或者Python一样自带注释语法,还是有一些方法的:
- 方法1
利用了逻辑语句的执行顺序,缺点是注释中不能出现括号。
###逻辑或前如果为真,后边的语句块自动不执行
#1
:||{
注释内容...
}
#2
((1))||{
注释内容...
}
#3
true||{
注释内容...
}
###逻辑与前如果为假,后边的语句块自动不执行
#4
((0))&&{
注释内容...
}
#5
false&&{
注释内容...
}
- 方法2
利用了shell脚本的here documents的语法,注意<<后边是自己命名的,做到前后呼应即可,如下为两例,但是我测试的几种命名只有例1中的方法没有什么缺点,在例二或者其他命名中,如果出现反单引号`则可能会报错!
#e.g. 1
:<<''
注释内容...
''
#e.g. 2
:<< BLOCK
注释内容...
BLOCK
- 方法3
如果是使用vim编辑,利用sed语法,vim中的normal模式下:
#全文注释:
:0,$ s/^/#/
#m到n行注释:
:m,n s/^/#/
#全文去注释:
:0,$ s/^#//
#m到n行去注释:
:m,n s/^#//
-
对变量赋值时,注意直接用变量名就好,且等号两边不加空格。
-
使用变量时,格式为$后紧跟变量名,或者$后紧跟加过花括号的变量名,花括号更利于程序明确区分变量名的边界。例如:
脚本:
#!/bin/bash
var1=hello
echo $var1 123
echo $var1123
echo ${var1}123
运行后输出:
hello 123
hello123
利用 `shell命令` 即可这个语法即可
e.g.
#!/bin/bash
VAR1=`echo hello world!|awk '{printf "%s\n", $1}'`
echo $VAR1
结果会输出
$ hello
本作品采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可。
Wiki: wiki.jcix.top ~聚沙成塔~ Blog: blog.jcix.top