Я пытаюсь использовать ассоциативный массив внутри файла bash. Но версия bash не 4.
Или есть ли способ включить файл ksh в файл bash без его запуска как bash?
решение1
Вы можете попробовать сделать следующее:
#!/bin/bash
ksh -c '
typeset -A arr
arr['foo']=1
arr['bar']=2
arr['base']=3
print "${arr[@]}"'
Или с помощьюздесь-док
#!/bin/bash
ksh <<'EOF'
typeset -A arr
arr['foo']=1
arr['bar']=2
arr['base']=3
print "${arr[@]}"
EOF
Отказ от ответственности
Как заявил @Гленн Джекманв комментариях, лучшее, что вы можете сделать, это полностью написать свой сценарий на чистом языкекш, зачем беспокоить вас смесьюБаш&кш?
Выход
3 2 1
решение2
Нет. Это разные программы. Вы можете только вызвать ksh с параметром -c
и, например, проанализировать вывод.