为什么额外的“需要bash命令行而不是脚本?

时间:2016-09-08 16:59:33

标签: bash

仅适用于cmd行:

SCRIPT_DIR=$( cd $( dirname \"$0\" ) ; pwd -P )

仅适用于脚本文件:

SCRIPT_DIR=$( cd $( dirname $0 ) ; pwd -P )

Linux和Mac都是如此。专家请解释一下?

1 个答案:

答案 0 :(得分:0)

这是因为当您在bash命令行上使用$0时,值为

$> echo "$0"
-bash

如果您使用不带引号的dirname $0,则会出现此错误:

dirname: invalid option -- 'b'

由于开头有连字符。

请注意,您也可以在--之后使用dirname

SCRIPT_DIR=$( cd $( dirname -- $0 ) ; pwd -P )