Verschieben eines Bash-Skripts in das Verzeichnis /bin

Verschieben eines Bash-Skripts in das Verzeichnis /bin

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-sayfunktioniert 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 cpund ü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/binOrdner 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>

verwandte Informationen