シェルスクリプト関数にスペースを含むパラメータを渡すには? [コピー]

シェルスクリプト関数にスペースを含むパラメータを渡すには? [コピー]

関数に複数の引数を渡そうとしていますが、引数の1つが2つの単語で構成されており、シェル関数がそれを1つの引数として扱うようにしたいと思います。

args=("$@")
function(){
 echo ${args[0]}
 echo ${args[1]}
 echo ${args[2]}
}

このコマンドを呼び出すとsh shell hi hello guys bye

わかりました。

hi

hello

guys

しかし、私が本当に欲しいものは:

hi 
hello guys
bye

ベストアンサー1

2番目のパラメータのみを引用する必要があります。

myfunc(){
        echo "$1"
        echo "$2"
        echo "$3"
}

myfunc hi "hello guys" bye

おすすめ記事