首先,在我的辩护中:我只使用csh,因为我的团队有很多遗留的csh.我们做科学编程; 很多人显然学会了在SunOS/Solaris时代使用csh,并且尽管有linux/bash过渡,但并没有放弃,尽管后者的(IMHO明显)优势.其次,如果这是一个FAQ,请道歉,但我没有通过SO或谷歌搜索找到答案,我已经投入了一些努力.
话虽如此:
我想从bash驱动一些遗留的csh脚本,作为[重写,删除]后者的第一步.bash-> csh适用于标量环境变量('envvars'),因为我可以从bash中导出它们并按预期从csh中读取它们.
然而,不是阵列...... 直到Chris J. Kiick的回答如下!以下示例更新为包括Kiick的答案及其产生的结果.将以下2个文件放在同一目录中,...
array_writer.sh
#!/usr/bin/env bash
### Test writing an array, passing it to csh, and reading it there.
THIS="$0"
THIS_DIR="$(readlink -f $(dirname ${THIS}))"
THIS_FN="$(basename ${THIS})"
MESSAGE_PREFIX="${THIS_FN}:"
ERROR_PREFIX="${MESSAGE_PREFIX} ERROR:"
PARTNER_FN='array_reader.csh'
PARTNER_DIR="${THIS_DIR}"
PARTNER_FP="${PARTNER_DIR}/${PARTNER_FN}"
export YEAR='2007'
# month-related arrays for ${YEAR}
declare -a BDOM=(0 31 59 90 120 151 181 212 243 273 304 334) # 0-based-Julian of first day of each month
declare -a MDAY=(31 28 31 30 31 30 …Run Code Online (Sandbox Code Playgroud)