脚本被直接执行(如./script.sh):此时$0与${BASH_SOURCE[0]}相同,都是脚本的名称,因此这个条件判断成立,main函数或其他指定的代码将会执行。 脚本被 source (如source script.sh或. script.sh):此时$0通常不等于脚本的名称,而是保持调用 shell 的名称,所以条件判断不成立。 通过这种方式,Bash 脚本可以模仿 Python...
所以,更加准确地说,FUNCNAME是一个数组,但是bash中会将它维护成类似一个堆栈的形式。与FUNCNAME相似的另外一个比较有用的常量是BASH_SOURCE,同样是一个数组,不过它的第一个元素是当前脚本的名称。这在source的时候非常有用,因为在被source的脚本中,$0是父脚本的名称,而不是被source的脚本名称。而BASH_SOURCE就可以...
1 常用快捷键 Alt+Backspace:删除光标前的一个单词 Alt+F:移动光标到下一个空格处 Alt+B:移动光...
/vol/collector 由上可知${BASH_SOURCE-$0}这种用法在使用./testbashsource方式启动的时候得到的值是./testbashsource;在使用sh testbashsource之类的方法启动时候得到的值只有testbashsource 这造成了在最后nice部分启动的时候找不到启动脚本的路径报错。 同样可以注意到的在用到pwd命令后获得的绝对路径都是一样的,...
$0:当前执行Shell文件名 $#:命令行中位置参数的个数 $*:获取当前shell的所有参数 $@:此程序的所有参数 系统特殊变量 $?:上一条命令执行后返回的状态,当返回值为0:表执行正常,非0:执行异常或出错 程序执行,可能有两类返回值: 》0:正确执行 》1~255:错误执行。其中1,2,127 是系统预留错误代码,可自行使用...
脚本参数script.sh word1 word2 word3上面例子中,script.sh是一个脚本文件,word1、word2和word3是三个参数。脚本文件内部,可以使用特殊变量,引用这些参数: $0:脚本文件名,即script.sh $#:参数的数量 bash脚本mysql操作 加载 配置文件 命令行参数 转载
Hi in some of the scripts you are still using dirname $0 to get the script folder. This doesn't work all the time. And should be replaced by either BASH_SOURCE[0] or another solution.Owner Damangir commented Jan 16, 2014 Thanks for reporting. Replaced with (cd(dirname "${BASH_...
Another way to resolve would be to use $0 as a fallback case, such as: #!/bin/sh echo "xBASH_SOURCE = ${xBASH_SOURCE}" PATH=`dirname ${xBASH_SOURCE:-$0}` echo "PATH = ${PATH}" Looks like this: jemian@otz /tmp $ /home/oxygen/JEMIAN/sandbox/kevin.sh xBASH_SOURCE = PAT...
/bin/bashexportbashpath=$(cd`dirname $0`;pwd)echo$bashpath 1. 2. 3. source 文件获取当前文件的绝对路径 #!/bin/bash# 下面是输出当前文件的绝对路径cd$(dirname$BASH_SOURCE)# echo $(pwd)/$(basename $BASH_SOURCE)temp_file=`echo$(pwd)/$(basename$BASH_SOURCE)`# 下面是输出当前执行文件的...
echo "Usage: `basename $0` filename column-number" exit $E_WRONGARGS fi filename=$1 column_number=$2 #=== Same as original script, up to this point ===# export column_number # Export column number to environment, so it's available for retrieval. # --...