Есть ли способ разместить одну строку специфичного для ksh кода внутри bash-файла?

Есть ли способ разместить одну строку специфичного для ksh кода внутри bash-файла?

Я пытаюсь использовать ассоциативный массив внутри файла 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и, например, проанализировать вывод.

Связанный контент