在Bash 脚本中,使用if [[ $0 == ${BASH_SOURCE[0]} ]]; then的模式功能上与 Python 中的if __name__ == "__main__":语句相似。这个 Shell 脚本的构造在如下两种情境中判断当前脚本是被直接执行还是被 source: 脚本被直接执行(如./script.sh):此时$0与${BASH_SOURCE[0]}相同,都是脚本的名称,因此...
一、0 1 2 文件描述符 在shell 程式中,最常使用的 FD (file descriptor) 大概有三个, 分别是: 0 是一个文件描述符,表示标准输入(stdin) 1 是一个文件描述符,表示标准输出(stdout) 2 是一个文件描述符,表示标准错误(stderr) 在标准情况下, 这些FD分别跟如下设备关联: stdin(0): keyboard 键盘输入,并...
shell脚本中exit0和exit1的含义 exit 0:正常运行程序并退出程序; exit 1:非正常运行导致退出程序; exit 0 可以告知你的程序的使用者:你的程序是正常结束的。如果 exit 非 0 值,那么你的程序的使用者通常会认为 你的程序产生了一个错误。 在shell 中调用完你的程序之后,用 echo $? 命令就可以看到你的程序...
预定义变量使用“$”符号和另一个符号组合表示 $#:表示命令行中位置参数的个数 $*:表示所有位置参数的内容,这些内容做一个整体 $@:表示列出所有位置参数,但是是以单个的形式的列出 $?:表示前一条命令执行后的返回状态,返回值为0表示执行正确,返回任性非0值均表示执行出现异常。 $0:表示当前执行的脚本或程序的...
shell 中运行的每个命令都使用退出状态码(exit status)告诉 shell 它已经运行完毕。退出状态码是一个 0 ~ 255 的整数值,在命令结束运行时由命令传给 shell。可以捕获这个值并在脚本中使用。 查看退出状态码 Linux 提供了一个专门的变量$?来保存上个已执行命令的退出状态码。对于需要进行检查的命令,必须在其运行...
0(脚本名称: 0) The 0variableholdsthenameofthescript,anditisusefulforgeneratingdiagnosticmessages.Forexample,sayyourscriptneedstoreportaninvalidargumentthatisstoredinthe BADPARM variable. You can print the diagnostic message with the following line so that the script name appears in the error message: ...
单独定义数组的元素: array_para[0]="w"; array_para[3]="s" (定义时下标不连续也可以) 赋值数组元素:array_name[0]="zhao"; 获取数组元素: array_name[0]="li" array_name[3]="zhang" echo ${array_name[0]} # 输出"li" echo ${array_name[1]} # 输出" " ...
赋值数组元素:array_name[0]=“zhao”; 获取数组元素: array_name[0]=“li” array_name[3]=“zhang” echo ${array_name[0]} # 输出"li" echo ${array_name[1]} # 输出" " echo ${array_name[3]} # 输出"zhang" echo ${array_name[@]} # 输出"li zhang" 输出数组所有元素,没有元素的下...
exit 0 # 2,编写完成脚本之后,需要对脚本文件赋予可执行的权限 $ chmod 755 case.sh # 3,执行脚本 $ sh case.sh (3).for/do/done 结构 1).案例需求 请使用for循环在指定目录下"/root/test"目录下创建是个文件。 test-1.sh test-2.sh
执行成功,我们拿到了flag,但可以看到这种构造方式不够极限,里面不但出现0更出现了1,下面,我们开始构造真正的无字母数字命令。 利用$#构造 在之前那篇文章里我也提到过$#这个变量,它可以表示#脚本后所输入的字符串个数: 如果#后面啥也没有它就是0,有一个字符串比如#就变成了1,似乎现在我们只要把1用${##}替...