seltsame script-parameter
seltsame script-parameter
hi,
ich hab bei einem script von f-prot folgendes gefunden:
exec /opt/f-prot/f-prot ${@+"$@"}
wenn ich das binary direkt aufrufe bringt das fehler, dass zwischenscript ist also notwendig. was macht aber das
${@+"$@"}
???
ich hab bei einem script von f-prot folgendes gefunden:
exec /opt/f-prot/f-prot ${@+"$@"}
wenn ich das binary direkt aufrufe bringt das fehler, dass zwischenscript ist also notwendig. was macht aber das
${@+"$@"}
???
gruss pischti
debian stable
debian stable
- meandtheshell
- Beiträge: 4054
- Registriert: 14.01.2005 17:51:30
nix spanisch - spezielle shell variablen (bash)nepos hat geschrieben:Das reicht eigentlich nur die Parameter, mit denen du das Skript aufrufst an f-prot weiter. Wobei mir der Aufbau der Expansion mit dem + und so auch bisserl spanisch vorkommt.
Code: Alles auswählen
$@
info siehe http://www.linuxfibel.de/bash.htm abschnitt - spezielle shellvariablen
- meandtheshell
- Beiträge: 4054
- Registriert: 14.01.2005 17:51:30
aha - gut - im kontext mit der zeile oben hab ich es gar nicht versucht ... ich wollte lediglich sagen was $@ macht/ist - aber du kannst ja durchaus Recht haben kommt ja auf den Parameter an aus denen ich die Token heraus nehme - würden wir das ganze script kennen würde man sagen können was passiertJoghurt hat geschrieben:Schon, aber erkläre mal bitte den Unterschied zwischen '$@' und '${@+"$@"}'. Nach meinen Tests sind nämlich beide identisch.
- KBDCALLS
- Moderator
- Beiträge: 22447
- Registriert: 24.12.2003 21:26:55
- Lizenz eigener Beiträge: MIT Lizenz
- Wohnort: Dortmund
-
Kontaktdaten:
Könnte aber daran liegen das das Script auch mit der Kornshell laufen soll.
Was haben Windows und ein Uboot gemeinsam?
Kaum macht man ein Fenster auf, gehen die Probleme los.
EDV ist die Abkürzung für: Ende der Vernunft
Bevor du einen Beitrag postest:
Kaum macht man ein Fenster auf, gehen die Probleme los.
EDV ist die Abkürzung für: Ende der Vernunft
Bevor du einen Beitrag postest:
- Kennst du unsere Verhaltensregeln
- Lange Codezeilen/Logs gehören nach NoPaste, in Deinen Beitrag dann der passende Link dazu.
- meandtheshell
- Beiträge: 4054
- Registriert: 14.01.2005 17:51:30
- meandtheshell
- Beiträge: 4054
- Registriert: 14.01.2005 17:51:30
teste einmal mit einem Argument, welches ein blank enthältJoghurt hat geschrieben:Schon, aber erkläre mal bitte den Unterschied zwischen '$@' und '${@+"$@"}'. Nach meinen Tests sind nämlich beide identisch.
script:
Code: Alles auswählen
#!/bin/sh
function pargs {
echo "arg 1=$1"
echo "arg 2=$2"
}
pargs ${@+"$@"}
pargs $@
Code: Alles auswählen
gms@gms1:~$ ./x.sh "abc d"
arg 1=abc d
arg 2=
arg 1=abc
arg 2=d
- meandtheshell
- Beiträge: 4054
- Registriert: 14.01.2005 17:51:30
jepp - die token ergeben sich aus den characters die als IFS definiert sind - ein blank ist ja ein IFS - einfach machen - ein blank ist per default dabei - weitere kann man dazu geben ...
Code: Alles auswählen
set