Veröffentlicht 17. Juli 20232 j Hallo alle, Ich bin gerade am Lernen und hänge bei einer Aufgabe fest, nämlich: Skript: for i in $1 do let k=($i*$2)+$3 echo $k > $i done Und das Skript wird aufgerufen durch: bash ./myscript.sh „0 4 7 2 1“ 2 9 12 5 Die Aufgabe nun ist, dass wir eine Tablle haben und dort den Namen der erzeugten Datei und den Inhalt eintragen sollen. Ich weiß aber nicht genau, was es wäre. Ein bisschen Hilfe würde ich sehr schätzen. Vielen Dank.
18. Juli 20232 j Ein bisschen Google zu for-schleifen würde dir da sicherlich den Weg ebnen. in der zeile "let k" sowie in den Übergabe Parametern dürfte sich ein Fehler eingeschlichen haben. https://wiki.ubuntuusers.de/Shell/Bash-Skripting-Guide_für_Anfänger/
18. Juli 20232 j Jo. An dem Beispiel ist einiges krumm… Die for Schleife läuft eh nur mit einem Wert durch. Dann steht 7 in einem File names 0, wer macht denn sowas?? Dazu das „let“??
18. Juli 20232 j Ich muss gestehen dass ich in meinen Scripten irgendwie noch nie mit "let" gearbeitet habe Aber ich schreibe Scripte auch immer kompatibel zu allen Shells und let ist bash spezifisch
18. Juli 20232 j Ansonsten ist es bestimmt auch hilfreich, sich über sog Positionsparameter zu informieren zB: https://bash.cyberciti.biz/guide/$1 $0 is the name of the script itself (script.sh) $1 is the first argument $2 is the second argument $9 is the ninth argument ${10} is the tenth argument and must be enclosed in brackets after $9. ${11} is the eleventh argument. -> Wenn du das in die entspr. "$"-Ausdrücke (Variablen) innerhalb des Skriptes einsetzt, sollte sich auch erschließen, was da genau passiert.
Erstelle ein Konto oder melde dich an, um einen Kommentar zu schreiben.