bash
implementa apenas um subconjunto dos recursos de ksh93
. Embora ele implemente a maioria dos recursos de ksh88
, para alguns deles ele é diferente e nem todos os recursos são ativados por padrão.
Por exemplo, os alias em bash
não são expandidos quando não interativos, os globs estendidos do ksh não são ativados por padrão, bash
não possui print
builtin, não é possível definir matrizes com set -A
, co -processos são invocados e usados de forma diferente ...
Portanto, a menos que esses scripts ksh sejam muito simples e sejam basicamente compatível com POSIX sh (um subconjunto bem definido do subconjunto de comandos bash
e a variante sintaxe de implementação ksh
), é provável que eles não sejam executados adequadamente bash
.
Agora, desde 2000, ksh93
é open source e está disponível gratuitamente na maioria dos sistemas operacionais (e na maior parte compatível com ksh88
). Para ksh88
scripts, pdksh
e derivados modernos como mksh
também são geralmente suficientes.
Todos eles são geralmente muito mais eficientes do que bash
, então não vejo por que você gostaria de ter esses scripts interpretados por bash
em vez do interpretador para o qual foram originalmente escritos.
Mesmo zsh
seria uma escolha melhor do que bash
, pois tem um modo de emulação ksh.