- ベストアンサー
シェルの変数セットについて
どなたか教えてください。 以下のようなUNIXのシェルを作ってみたのですが変数がうまくセットされません。 これは仕様なんでしょうか??? シェルはkshでシェルの中でsuしているユーザはcshです。 例: ==test.sh== #!/bin/ksh A1="test test" su - user1 <<EOF echo "A1 :" $A1 set A2 =(test test) echo "A2 : " $A2 EOF exit ==実行結果== %./test A1 : test test A2 : %
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
> echo "A2 : " $A2 この$A2が kshで展開された状態で suに渡されているのが原因です。 \$A2として$をそのままsuに渡すようにしましょう。 ついでに言えば、 > echo "A1 :" $A1 が > A1 : test test となるのも、kshで展開された echo "A1 :" test test がsuに渡されたからであって、cshで $A1を展開しているわけではありません。
お礼
ありがとうございます、大変参考になりました。