プロが教える店舗&オフィスのセキュリティ対策術

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」
と関数側で判断できる方法はありませんか?

A 回答 (1件)

ダブルクオートでくくっちゃダメ?

    • good
    • 0
この回答へのお礼

ありがとうございます。

■■■
#!/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=


ダブルクォートを渡してもイケたし、全部解決しました。

お礼日時:2010/06/10 13:06

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています