Você deve apenas citar o segundo argumento.
myfunc(){
echo "$1"
echo "$2"
echo "$3"
}
myfunc hi "hello guys" bye
Estou tentando passar vários argumentos para uma função, mas um deles é composto por duas palavras e eu quero que a função shell lide com isso como um argumento:
args=("$@")
function(){
echo ${args[0]}
echo ${args[1]}
echo ${args[2]}
}
quando eu chamo este comando sh shell hi hello guys bye
Eu entendo isso
hi
hello
guys
Mas o que eu realmente quero é:
hi
hello guys
bye
Se for chamado a partir de qualquer shell Unix, você precisa citá-lo.
sh shell hi "hello guys" bye
Não há como fazer isso no script, pois não há como o script saber quais espaços são quais (quais palavras estão juntas).
Tags shell-script arguments