※ ChatGPTを利用し、要約された質問です(原文:bashの関数の引数にスペースが入るとズレる件)
bashの関数の引数にスペースが入るとズレる件
このQ&Aのポイント
bashの関数の引数にスペースが入ると、引数が分離して、位置がズレてしまう問題があります。
この問題を回避する方法があるかどうかを教えてください。
または、関数側で引数の値を判断する方法があるかどうかも知りたいです。
bashの関数の引数にスペースが入るとズレる件
bashの関数の引数にスペースが入ると、引数が分離して、位置がズレてしまいます。
これを回避する方法はありませんか?
■aaa.sh-Top
#!/bin/bash
declare FuncPara1
declare FuncPara2
function f_echo() {
echo 'uf_echo1='$1
echo 'uf_echo2='$2
echo 'uf_echo3='$3
}
echo '---test1---'
FuncPara1='aaabbb'
FuncPara2='ccc'
f_echo ${FuncPara1} ${FuncPara2}
echo '---test2---'
FuncPara1='aaa bbb'
FuncPara2='ccc'
f_echo ${FuncPara1} ${FuncPara2}
■aaa.sh-Bottom
■aaa.shの実行
# ./aaa.sh
---test1---
uf_echo1=aaabbb
uf_echo2=ccc
uf_echo3=
---test2---
uf_echo1=aaa
uf_echo2=bbb
uf_echo3=ccc
このtest2の時に、
---test2---
uf_echo1=aaa bbb
uf_echo2=ccc
uf_echo3=
となって欲しい。
もしくは、何かしら「なったテイ」で、
引数1の値は「aaa bbb」
引数2の値は「ccc」
と関数側で判断できる方法はありませんか?
お礼
ありがとうございます。 ■■■ #!/bin/bash declare FuncPara1 declare FuncPara2 function f_echo() { echo 'uf_echo1='$1 echo 'uf_echo2='$2 echo 'uf_echo3='$3 } echo '---test1---' FuncPara1='aaabbb' FuncPara2='ccc' f_echo "${FuncPara1}" "${FuncPara2}" echo '---test2---' FuncPara1='aaa bbb' FuncPara2='ccc' f_echo "${FuncPara1}" "${FuncPara2}" echo '---test3---' FuncPara1='aaa" bbb' FuncPara2='ccc' f_echo "${FuncPara1}" "${FuncPara2}" ■■■ こういう事ですか。 ■■■ ---test1--- uf_echo1=aaabbb uf_echo2=ccc uf_echo3= ---test2--- uf_echo1=aaa bbb uf_echo2=ccc uf_echo3= ---test3--- uf_echo1=aaa" bbb uf_echo2=ccc uf_echo3= ダブルクォートを渡してもイケたし、全部解決しました。