dirname ungültige Option `b`


8

Warum erhalte ich diesen Fehler? Ich versuche, diese set.conf zu beschaffen

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

Ich habe versucht, - $ 0 an der Eingabeaufforderung hinzuzufügen, es funktioniert aber gut. Wie kann ich das im Skript ausführen?


Möchten Sie uns mitteilen, was 0 US-Dollar sind?
Ikarus

$ 0 ist der Dateiname des aktuellen Skripts. (src: tutorialspoint.com/unix/unix-special-variables.htm )
Dirk Schumacher

Antworten:


14

$0 In einem Skript befindet sich der Name des Skripts.

Bei der Eingabeaufforderung ist dies der Name der Shell, was wahrscheinlich -bashin Ihrem Fall der Fall ist.

dirnamebehandelt den führenden Bindestrich als Einführung einer Befehlszeilenoption -b, die nicht unterstützt wird.

  1. Der von Ihnen verwendete Code funktioniert an der Eingabeaufforderung nicht. Sie können es in eine Datei einfügen und stattdessen die Datei ausführen.
  2. Versuchen Sie es dirname -- $0stattdessen: Mit den meisten Befehlen können Sie schreiben --, damit alles, was folgt, als Parameter anstelle von Optionen behandelt wird. In diesem Fall wird das Problem nicht behoben, es sollte jedoch klarer werden, um welches Problem es sich handelt.

Es wurde ausgeführt, aber wie Sie sagten, funktioniert es in der Bash-Eingabeaufforderung, aber es wird nicht in der eigentlichen Skriptdatei ausgeführt.
Mischling

Wie kann ich es auf dem Skript ausführen ....
Mongrel
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.