我有一个使用变量构建的命令,有时它们有"
或'
。我想将文本保存到变量中而不用担心引号。
看着这正在思考类似的事情:
ESCAPE_CHAR="${1-\"}"
DELIMITER="${2:-,}"
IFS='' read -r -d '' var <<'EOF'
gunzup -cd ${FILE} | sed -E 's/(${ESCAPE_CHAR}([^${ESCAPE_CHAR}]*)${ESCAPE_CHAR})?${DELIMITER}/\2\t/g'
EOF
split -C 64M -d -a 3 | gzip > $FILE.gz' <(eval "${val}") split/files_
这里基本上发生的是我将 gzip csv 文件转换为 tsv。此代码的问题在于 EOD 内的变量未转换为其值。也许它也eval
不会工作,因为它周围val
有引号,但这还有待观察。