Add an example of how to avoid this warning using arrays

Pedro Arthur Duarte [aka JEdi]
2017-09-14 17:30:39 -03:00
parent d2968d6651
commit 5ab64b0a3d

@@ -29,4 +29,16 @@ In rare cases you actually want word splitting, such as in
gcc $(pkg-config --libs openssl) client.c gcc $(pkg-config --libs openssl) client.c
This is because `pkg-config` outputs `-lssl -lcrypto`, which you want to break up by spaces into `-lssl` and `-lcrypto`. This is because `pkg-config` outputs `-lssl -lcrypto`, which you want to break up by spaces into `-lssl` and `-lcrypto`. An alternative is to put the variables to an array and expand it:
args=( $(pkg-config --libs openssl) )
gcc "${args[@]}" client.c
The power of using an array becomes evident when you want to combine, for example, the command result with user-provided arguments:
compile () {
args=( $(pkg-config --libs openssl) "${@}" )
gcc "${args[@]}" client.c
}
compile -DDEBUG
+ gcc -lssl -lcrypto -DDEBUG client.c