Sie müssten tatsächlich Verzeichnisse in Ihrem Skript ändern. Typisch:
cd "$(dirname "$0")"
Hey, ich führe mein Shell-Skript aus, das mit Ordnern und Dateien interagiert, aber mein $ PWD, das immer auf das Verzeichnis / home / MyUserName verweist, und dies führt zu einer Verschlechterung dessen, was es tun soll. Ich verwende Linux 4.4.8-300.fc23.x86_64 GNU / Linux:
#!/usr/bin/bash -x clear ls $PWD #Check Root echo checking Root user if [ $EUID -ne 0 ] then sudo su fi; #Check internet availablity TEST=$(ping -c 1 74.125.21.14|wc -l) if [ $TEST -gt 5 2>&1 ] then sudo dnf install gcc kernel-devel binutils cpp glibc-devel glibc-headers isl kernel kernel-headers libmpc else echo "No Internet Connection Available! Installing RPMs manuely." arr=(*.rpm) for (( i=0; i<${#arr[@]}; i++ )); do echo " $ " dnf -y install $ done fi; # Get Network Ability echo "Starting the setup of your laptop's wireless card." if [ -d ./MyWirelessCard ] then FILE=./MyWirelessCard/fedora23_broadcom_wl_install.sh uname1=" $( stat -c "%u" $FILE ) " [ " $USERNAME1 = 1000" ] || chown 1000 $FILE [ " -r -w -x $FILE " ] || chmod +rwx $FILE else mkdir ./MyWirelessCard FILE=./MyWirelessCard/fedora23_broadcom_wl_install.sh uname1=" $( stat -c "%u" $FILE ) " [ " $USERNAME1 = 1000" ] || chown 1000 $FILE [ " -r -w -x $FILE " ] || chmod +rwx $FILE fi; #Making wireless card installer run on boot #echo "Making the wireless card install script run on boot" #ln -s ./MyWirelessCard/fedora23_broadcom_wl_update.sh /etc/init.d/ #ln -s ./MyWirelessCard/fedora23_broadcom_wl_update.sh /etc/rc.d/ # Initial Update echo "Preforming initial system update." dnf -y update #Exit echo Script is finished exit
Ich bekomme:
- ls / home / MyUserName Inhalt des Ordners
- Echo-Prüfung Stammbenutzer Prüfung Stammbenutzer
- '[' 1000 -ne 0 ']'
- sudo su [sudo] kennwort für myUserName: ++ ping -c 1 74.125.21.14 ++ wc -l
- TEST = 6
- '[' 6 -gt 5 ']'
- sudo dnf install gcc kernel-devel binutils cpp glibc-devel glibc-headers isl kernel-kernel-headers libmpc [sudo] kennwort für dcarr:
- echo 'Die Einrichtung der WLAN-Karte Ihres Laptops wird gestartet.' Starten der Einrichtung der WLAN-Karte Ihres Laptops.
- '[' -d ./MyWirelessCard ']'
- mkdir ./MyWirelessCard
- FILE =. / MyWirelessCard / fedora23_broadcom_wl_install.sh ++ stat -c% u ./MyWirelessCard/fedora23_broadcom_wl_install.sh stat: Keine Stat './MyWirelessCard/fedora23_broadcom_wl_install.sh': Keine solche Datei oder kein Verzeichnis
- uname1 = ''
- '[' '= 1000' ']'
- '[' '-r -w -x ./MyWirelessCard/fedora23_broadcom_wl_install.sh' ']'
- echo 'Vor dem ersten Systemupdate vorbereiten.' Erste Aktualisierung des Systems durchführen.
- dnf -y update Fehler: Dieser Befehl muss unter dem Root-Benutzer ausgeführt werden.
- echo Skript ist fertig Skript ist fertig
- Ausfahrt
Ich bin ratlos, jede Hilfe wäre sehr dankbar.
Sie müssten tatsächlich Verzeichnisse in Ihrem Skript ändern. Typisch:
cd "$(dirname "$0")"