私は多くのことを試しましたが、解決策を得ることができませんでした。私は簡単なスクリプトを持っています:
#! /bin/sh
o="12345"
a=o
b=${!a}
echo ${a}
echo ${b}
のように実行すると
$ . scp.sh
エラーなしで正しい出力を生成しますが、実行すると次のようになります。
$ ./scp.sh
それが生み出す
./scp.sh: 4: ./scp.sh: 不適切な置換
なぜこれが起こっているのかについてのアイデア。
bash モードを使用するように提案されましたが、正常に動作します。しかし、Python を使用してこの同じスクリプトを実行すると (スクリプト ヘッダーを bash に変更すると)、同じエラーが発生します。
私はPythonから次のように呼び出しています:
import os
os.system(". ./scp.sh")