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.