Ich schrieb dieses Skript, im Grunde ist es, die RAM-Caches zu löschen. Ich weiß, es ist chaotisch - all die „echo‚‘, die Sie gerade eine Arbeit um zu sehen sind, um es sauberer zu machen, Ich mag einige leeren Zeilen zwischen den BefehlenFile Permission Flag 'setuid' wird ignoriert
#!/bin/bash
free -m && wait
echo ''; echo ''
while true; do
read -p "Vuoi liberare la RAM? [y,n]" domanda
case $domanda in
y|Y) echo ''; sync; sudo echo 3 > /proc/sys/vm/drop_caches; echo ''; free -m; echo ''; break ;;
n|N) echo ''; echo 'Sei tu il saggio Jack ;)'; echo ''; break ;;
*) echo ''; echo 'Come prego?'; echo '' ;;
esac
done
Wie auch immer, das Skript funktioniert, aber in Ordnung.. machen es funktioniert ich die Berechtigungen mussten, wie es folgt:.
sudo chown root.root <my script>
sudo chmod 4755 <my script>
wie gesagt es funktioniert habe ich einen Anruf Unterverzeichnis: Bin, kopiert in meinem Haus, das Innere Skript und dann habe ich diese Linie in meinem .profile
:
export PATH="/home/jacklapinza/.bin:$PATH"
So funktioniert der neue Pfad ordnungsgemäß, aber das Skript funktioniert nicht mehr. Ich meine, es funktioniert, wenn ich ‚Nein‘ wählen, aber wenn ich drücke ‚y‘ ein Fehler herausspringt:
permission denied.
ich die gleichen Berechtigungen für die Datei festgelegt haben.
Was mache ich falsch?
Entfernen Sie einfach den Sudo-Aufruf aus der Datei und verwenden Sie, um Ihr Skript mit Sudo aufzurufen. Sie können prüfen, ob das Skript als root mit '$ (id -nu)' läuft. –
FYI normalerweise sollten Sie Ihr Benutzerverzeichnis nicht vor dem normalen Pfad hinzufügen, verwenden Sie stattdessen: 'export PATH =" $ PATH: /home/jacklapinza/.bin "' oder 'export PATH =" $ PATH: $ HOME /. bin "' – andlrc