1.shell中#!的意义:

 

#!/bin/bash
#上面的意思是说,把下面的字符统统传递给/bin/bash
echo "Hello Boy!"
...
当然,还有很多。
#!/bin/lua
#!/bin/perl
#!/bin/python
#!/bin/tcl
....
其实这个就是声明用哪个程序来运行本文件。

2.set -x 和set +x的区别

set -x与set +x指令用于脚本调试

set是把它下面的命令打印到屏幕

set -x 开启 

set +x关闭

set -o 查看

3.exit 0 和 exit 1 的区别

exit(0):正常运行程序并退出程序;

exit(1):非正常运行导致退出程序;

exit 0 可以告知你的程序的使用者:你的程序是正常结束的。如果 exit 非 0 值,那么你的程序的使用者通常会认为你的程序产生了一个错误。
在 shell 中调用完你的程序之后,用 echo $? 命令就可以看到你的程序的 exit 值。在 shell 脚本中,通常会根据上一个命令的 $? 值来进行一些流程控制。
 

4.RANDOM%变量

shell有一个环境变量RANDOM,范围是0--32767

如果我们想要产生0-25范围内的数:$(($RANDOM%26))

在$(()) 是可以省略取值的$符号的。

(All tokens in the expression undergo parameter expansion, string expansion, command substitu-tion, and quote removal.)

用这个环境变量对26取模即可。

如果想得到1--68范围内的数 : $(($RANDOM%68+1 ))

如果想得到6--87范围内的数 : $(($RANDOM%82+6 ))

2、Awk传递变量

 awk 'BEGIN{srand();print rand()}'

5.shell输入/输出重定向

6.cat的作用

cat的主要三大功能:

1.一次显示整个文件:cat filename

2.从键盘创建一个文件:cat > filename 只能创建新的文件,不能编辑已有的文件

3.将几个文件合并为一个问文件:cat file1 file2 >file

cat -n 代行号
-b 对于空白不编行号
-E 在每行结束显示$
-A 显示所有制表符
tac file2 倒叙输出

7.awk 的作用

awk就是把文件逐行的读入,以空格为默认分隔符将每行切片,切开的部分再进行各种分析处理

awk工作流程是这样的:读入有'\n'换行符分割的一条记录,然后将记录按指定的域分隔符划分域,填充域,$0则表示所有域,$1表示第一个域,$n表示第n个域。默认域分隔符是"空白键" 或 "[tab]键"

[-F|-f|-v]   大参数,-F指定分隔符,-f调用脚本,-v定义变量 var=value

 

Logo

CSDN联合极客时间,共同打造面向开发者的精品内容学习社区,助力成长!

更多推荐