目录名无效选项`b`

ARe*_*ddy 9 bash

为什么会出现此错误,我正在尝试获取此 set.conf

user@connect:~/testenv$ source $(cd $(dirname $0) && pwd)"/set.conf"
dirname: invalid option -- 'b'
Try 'dirname --help' for more information.
-bash: /home/tempuser/set.conf: No such file or directory
Run Code Online (Sandbox Code Playgroud)

我尝试在命令提示符下添加 -- $0 效果很好,但是。如何在脚本中运行它?

Mik*_*kel 17

$0 脚本内部是脚本的名称。

在提示符下,它是 shell 的名称,这可能-bash是您的情况。

dirname将前导破折号视为引入命令行选项 ,-b它不支持。

  1. 您使用的代码在提示符下不起作用。您可以将其粘贴到文件中并运行该文件。
  2. 试试看dirname -- $0:大多数命令都允许您编写--以使其将后面的所有内容视为参数而不是选项。在这种情况下,它不会解决问题,但应该更清楚地说明问题是什么。