Ich habe ein Bash-Skript namens Skript.sh. Es funktionierte gut, als es in meinem/heimVerzeichnis. Ich habe es in mein/BehälterVerzeichnis, um es als Befehl auszuführen. Zuerst funktionierte es gut (als Befehl, in meinem/Behälter), aber nach dem Neustart funktionierte es nicht mehr. Wenn ich Script.sh
, im Terminal eingebe, passiert nichts und ich muss Ctrl+ verwenden C
, damit das Terminal wieder funktioniert. Wenn meinSkript.shist in meinem/Behälterspd-say
funktioniert mein Befehl auch nicht (er spricht das Argument nicht aus, wenn ich es im Terminal verwende). Nachdem ich das Skript von/Behälter, alles wird korrigiert. Gibt es ein Problem beim Verschieben einer Datei nach/Behälter?
$ echo $PATH
:/home/m/bin:/home/m/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin
Dies ist der erste Teil des Skripts.
#!/bin/bash
spd-say -w "Do you know this man?"
xdg-open $(locate "X.jpg")
read a
if [ "$a" == "yes" ]
then
spd-say -w "Call the police."
else
spd-say -w "Thanks."
fi
Antwort1
Mein Ruf reicht nicht aus, um einen Kommentar abzugeben, aber meiner Ansicht nach müssen Sie Ihr Skript in /usr/local/bin ablegen.
Ausman hier(7)
/bin This directory contains executable programs which are needed in single user mode and to bring the system up or repair it. /usr/local/bin Binaries for programs local to the site.
Kopieren Sie es sudo cp
und überprüfen Sie die Berechtigungen.
Wenn Sie das Programm jedoch nur für sich selbst verwenden möchten, legen Sie es in einem /home/$USER/bin
Ordner ab.
Sie können auch einen symbolischen Link von Ihrem Skript zu einem Pfad in /usr/local/bin erstellen.
ln -s /full/path/to/your-script.sh /usr/local/bin/<empty or optional name>