Per SH Datei Lautstärke regeln?

  • Hi liebe Community,

    Wenn ich folgenden Befehl im Terminal eingebe, verändert sich wie gewünscht die Lautstärke.

    sudo amixer set PCM -- $[$(amixer get PCM|grep -o [0-9]*%|sed 's/%//')+5]%

    Jedoch nicht wenn ich denn obigen Text in eine sh Datei schreibe und ausführe kein Error nichts?


    Wie kann ich sonst noch die Lautstärke in einer sh Datei umändern?
    Wurde einfach per "sudo sh dateiname.sh" ausgeführt.


    Danke im voraus

    • Offizieller Beitrag

    warum sh und nicht bash?
    Datei erstellen - test.sh, das rein kopieren

    Bash
    #!/bin/bash
    amixer set PCM -- $[$(amixer get PCM|grep -o [0-9]*%|sed 's/%//')+5]%

    ausführbar machen

    Code
    chmod +x test.sh


    testen

    Code
    sudo ./test.sh

    Der Unterschied zwischen Genie und Wahnsinn definiert sich im Erfolg.

    Einmal editiert, zuletzt von dbv (8. April 2015 um 10:17)

  • Erstmal würde ich auf die Pfade tippen. Wenn du sudo sh machst rufst du einen andere Shell auf und alle Pfade die normalerweise in $PATH drin stehen sind wech, weil $PATH nicht vererbt wird.
    Also entweder Komplette PFade für jeden Befehl angeben oder selber im Script einen PATH Variable definieren wo alles benötigten Pfade drin sind.
    Dann mach dir das Leben einfacher in dem du in der erten Zeile deines Scriptes die Shell an gibst und zwar so:

    Bash
    #!/bin/sh
    ...


    Hängt davon ab wo die Shell auf dem System zufinden ist
    Dann mach die .sh ausführbar mit chmod
    und schon kannst du dir den Aufruf von "sh" sparen.
    Dann hast du zweimal das sudo drin? Einmal im Aufruf des Scriptes und einmal im Script selber? Meiner Meinung nach, sollte der sudo im Script reichen und auch dort an der richtigen Stelle sein.
    Aber an den Pfaden wirst du nicht vorbeikommen denke ich.

    --
    man ist das System-Anzeigeprogramm für die Handbuchseiten von Linux.

  • dbv hat recht, mit Ausdrücken wie $[5+5] zu rechnen ist ein Feature der Bash, bei sh, die bei Debian und den meisten Abkömmlingen auf die dash zeigt, kann man nicht davon ausgehen, dass es funktioniert.

    Aber eigentlich brauchst du doch gar nicht zu rechnen, wenn ich dein Vorhaben nicht missinterpretiere. 5% lauter kannst du zB mit

    Code
    amixer set PCM -- 5%+


    stellen. Wobei ich auch noch, um Verwechslungen auszuschließen den Namen der Soundkarte angeben würde

    Code
    amixer -D hw:PCH  set PCM -- 5%+


    (PCH ist der Name von meinem Onboardsound auf dem Computer, keine Ahnung wie er auf dem RPi heißt, das müsstest du zB mit dem Befehl aplay -l selbst herausfinden)

    sudo sollte für das Regeln der Lautstärke auch nicht notwendig sein. Ich würde einfach den Benutzer, der den Befehl ausführen soll, der Gruppe audio hinzufügen

    Code
    sudo adduser BENUTZERNAME audio

    Einmal editiert, zuletzt von smutbert (8. April 2015 um 13:30)

  • Bei meinem Pi ust der Benutzer PI in der Gruppe "audio", trotzdem kann er per amixer nicht die Lautstärke ändern.
    Das geht nur für den freundlichen root.

    "amixer set PCM,0 20%"
    Beim User PI kommt zwar eine Ausgabe aber keine Änderung der Lautstärke. Aber eben auch keine Fehlermeldung.

    Computer ..... grrrrrr

Jetzt mitmachen!

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!