我有一个文本文件 (abc.txt),其中包含文件名以及要转换为 .csv 的路径。下面是我写的脚本:
{while IFS= read -r f ; do
filename="${f%.*}"
ssconvert ${filename}.xls ${filename}.csv
done < abc.txt}
问题是文件 .xls 文件名中有空格。所以脚本不起作用,说:
无法猜测导出器用于“文件:
我有一个文本文件 (abc.txt),其中包含文件名以及要转换为 .csv 的路径。下面是我写的脚本:
{while IFS= read -r f ; do
filename="${f%.*}"
ssconvert ${filename}.xls ${filename}.csv
done < abc.txt}
问题是文件 .xls 文件名中有空格。所以脚本不起作用,说:
无法猜测导出器用于“文件:
您应该用双引号将以下内容括起来,以防止出现通配符和分词:
ssconvert "${filename}.xls" "${filename}.csv"
还包括你的花括号和下一个/上一个对象之间的空格{ ... }
:
{ while IFS= read -r f ; do
filename="${f%.*}"
ssconvert "${filename}.xls" "${filename}.csv"
done < abc.txt ; }
注意:如果您仍然遇到评论中提到的“导出类型”错误的问题,可以尝试ssconvert "${filename}".xls "${filename}".csv
,因为我不熟悉它所需的确切语法。您可以使用在线工具shellcheck.net轻松检查您的脚本。