Wenn ich das folgende Skript mit einigen Argumenten wie arg1 arg2 arg3
:
#!/bin/bash
zenity --entry --text="$@"
Zenity erstellt einen Eingabedialog mit diesem Text: "arg1", während ich "arg1 arg2 arg3" erwarte.
Wenn ich eine Variable wie das folgende Skript verwende, werden alle Argumente für den Eintragstext angezeigt.
#!/bin/bash
text="$@"
zenity --entry --text="$text"
Was ist der Unterschied zwischen diesen Skripten? Warum ersetzt $@
das erste nur das erste Argument?
zenity --text="$*"
- wird"$*"
zu einem einzigen Wort erweitert.