• ベストアンサー

シェルの変数セットについて

どなたか教えてください。 以下のような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 : %

質問者が選んだベストアンサー

  • ベストアンサー
  • kmee
  • ベストアンサー率55% (1857/3366)
回答No.3

> echo "A2 : " $A2 この$A2が kshで展開された状態で suに渡されているのが原因です。 \$A2として$をそのままsuに渡すようにしましょう。 ついでに言えば、 > echo "A1 :" $A1 が > A1 : test test となるのも、kshで展開された echo "A1 :" test test がsuに渡されたからであって、cshで $A1を展開しているわけではありません。

kojikoji0218
質問者

お礼

ありがとうございます、大変参考になりました。

その他の回答 (2)

  • trapezium
  • ベストアンサー率62% (276/442)
回答No.2

$ をエスケープすれば? echo \$A2

kojikoji0218
質問者

お礼

回答ありがとうございます。  助かりました

  • Tacosan
  • ベストアンサー率23% (3656/15482)
回答No.1

どうなることを期待している?

kojikoji0218
質問者

補足

理想は質問で書いたシェルで言うと %test A1: test test A2: test test % となるのが理想です。

関連するQ&A