4 linux shell 脚本

位置参数变量

$n

n为数字,$0代表命令本身,$1-$9代表第一到第9个参数,

十以上的参数需要用大括号包含,如${10}。

$*

代表命令行中所有的参数,把所有的参数看成一个整体。以"$1 $2 … $n"的形式输出所有参数

$@

代表命令行中的所有参数,把每个参数区分对待。以"$1" "$2" … "$n" 的形式输出所有参数

$#

代表命令行中所有参数的个数。添加到shell的参数个数

 

特殊变量列表
变量含义
$0 当前脚本的文件名
$n 传递给脚本或函数的参数。n 是一个数字,表示第几个参数。例如,第一个参数是$1,第二个参数是$2。
$# 传递给脚本或函数的参数个数。
$* 传递给脚本或函数的所有参数。
$@ 传递给脚本或函数的所有参数。被双引号(" ")包含时,与 $* 稍有不同,下面将会讲到。
$? 上个命令的退出状态,或函数的返回值。
$$ 当前Shell进程ID。对于 Shell 脚本,就是这些脚本所在的进程ID。

命令行参数

-z 判断 变量的值,是否为空; zero = 0

- 变量的值,为空,返回0,为true
- 变量的值,非空,返回1,为false
 

Umask 为022:

      表示默认创建新文件权限为755,也就是 rxwr-xr-x(所有者全部权限,属组读写,其它人读写) 。

Umask 为0027:

       表示默认创建新文件权限为750,也就是rxwr-x---(所有者全部权限,属组读写,其它人无)。

 

ps -ef | grep "xxxxx" | grep -v grep

其中的grep -v grep 是干啥的呢 ?

很简单 ,为了去除包含grep的进程行 ,避免影响最终数据的正确性 。

 

 $# -gt 0 

在shell 中$# 是获取参数个数的意思。
-gt是大于的意思
所以这里是判断只有传入又参数时是才做while循环。

nohup

nohup 命令运行由 Command参数和任何相关的 Arg参数指定的命令,忽略所有挂断(SIGHUP)信号。在注销后使用 nohup 命令运行后台中的程序。要运行后台中的 nohup 命令,添加 & ( 表示“and”的符号)到命令的尾部。

nohup 是 no hang up 的缩写,就是不挂断的意思。

nohup命令:如果你正在运行一个进程,而且你觉得在退出帐户时该进程还不会结束,那么可以使用nohup命令。该命令可以在你退出帐户/关闭终端之后继续运行相应的进程。

在缺省情况下该作业的所有输出都被重定向到一个名为nohup.out的文件中。

posted @ 2021-11-03 16:04  刘大飞  阅读(98)  评论(0编辑  收藏  举报