Man wählt dann auch besser /usr/local/bin als Speicherort aus, wenn man das script von der konsole aus starten möchte, aber dazu nicht immer den kompletten Pfad angeben möchte bzw. nicht immer erst in das Verzeichnis wechseln möchte in das das Script abgespeichert ist.
Der Ablageort des Scripts ist hier aber erst einmal zweitrangig, weil es aus einem Dateimanager bzw. vom Desktop aus gestartet werden soll.
- Auf dem Desktop (bei mir Plasma) mit Klick rechte MT -> neu erstellen -> Verknüpfung zu Programm
kann man ein Ikon auf das Desktop zaubern und hier unter Eigenschaften -> Programm den Pfad zum script hinterlegen.
- Aus dem Dateimanager heraus (bei mir Dolphin) erübrigt sich die Pfadangabe. Das erledigt ja schon der Dateimanager.
Übrigens gelingt das Starten eines Skripts vom Desktop aus oder aus dem Dateimanager heraus bei mir beides mal mit (Doppel-) Klick auf die linke Maustaste. (Plasma und Dolphin)
Der Grund weshalb das script nichts tut wenn es von der GUI aus gestartet wird, ist aber ein ganz anderer. Du bist in der GUI als User angemeldet.. Das script startet, aber es wird keine sichtbare Passwortabfrage erzeugt. Und deshalb wird der pacman Befehl auch nicht ausgeführt, da er Rootrechte verlangt.
Eine Passwortabfrage bekommt man wenn man das script zuerst einmal ein Terminal öffnen lässt in welchem dann die Befehle ausgeführt werden:
#!/bin/bash
konsole -e sudo pacman -Syu && sudo paccache -vrk2
( Konsole ist das Terminal-Programm von KDE. Du kannst konsole
im Script auch durch den Terminalemulator ersetzen, der bei dir installiert ist, falls er auch eine -e Option besitzt. Ansonsten musst du evt. zuerst das Paket konsole installieren.)
Edit:
Und der große Vorteil davon wäre auch, dass du weiterhin sehen kannst was beim upgrade passiert, bzw. dass du die --noconfirm Option für den pacman Befehl dann auch nicht setzen musst.