bash(shebang)添字を呼び出すsh(shebang #!/bin/sh
)スクリプト()があります。sh.sh
#!/bin/bash
. "some-path/bash.sh"
Bashスクリプトには連想配列宣言があるため、declare -A properties
エラーが発生しますdeclare: not found
。
declare
親スクリプトがbashではなくshスクリプトなので、見つからない理由は明らかです。
bash構文を強制する方法はありますか?
別の方法は、新しいシェルを開く方法です。これは、サブスクリプトの目的が親スクリプトで使用する変数を定義することであるため、問題になります。子シェルは親シェルの変数を台無しにしてはいけません。
親(sh.sh):
#!/bin/sh
. "some-path/bash.sh"
子(bash.sh):
#!/bin/bash
declare -A properties
私が試している使い方:
./sh.sh
ベストアンサー1
スクリプト(source script
または. script
)をインポートしないでください。
代わりに正常に実行してくださいscript
。