sh(bash)スクリプトでbashスクリプトを実行するには?

sh(bash)スクリプトでbashスクリプトを実行するには?

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

おすすめ記事