Kiedy uruchamiam następujący skrypt z kilkoma argumentami, takimi jak arg1 arg2 arg3
:
#!/bin/bash
zenity --entry --text="$@"
zenity tworzy okno dialogowe z tym tekstem: „arg1”, podczas gdy oczekuję „arg1 arg2 arg3”
Jeśli użyję zmiennej takiej jak poniższy skrypt, pokaże wszystkie argumenty dla tekstu wpisu.
#!/bin/bash
text="$@"
zenity --entry --text="$text"
Jaka jest różnica między tymi skryptami? Dlaczego pierwszy zastępuje $@
się tylko pierwszym argumentem?
zenity --text="$*"
-"$*"
rozwija się do jednego słowa.