我有一个不适用于MacOsX的脚本。但这不是一个真正的问题:我可以使用try catch
避免奇怪的行为。但总是要重申我想在我需要的所有环境中使我的脚本兼容的事实。
{
declare -A fake_declaration=()
} || {
clear
printf "\n\n\nThis script cannot work here\n\n"
exit
}
还存在一种解决方法,以便在MacOsX中使用关联数组吗?
答案 0 :(得分:2)
BASH版本4.0
中引入了关联数组功能。默认OSX附带BASH版本3.2.xy
您可以使用以下方法检查您的bash版本:
echo $BASH_VERSION
对我来说,它显示:
3.2.57(1)-release
您可以像这样调整伪脚本,使其在有或没有关联数组的情况下工作,而不会产生错误:
{ declare -A fake_declaration=(); } 2>/dev/null ||
{ clear; printf "\n\n\nThis script cannot work here\n\n"; }
或者您可以使用home brew
package与所有其他gnu礼物安装BASH 4.3+
。