通过Latex将引号字符传递给shell

通过Latex将引号字符传递给shell,shell,awk,latex,Shell,Awk,Latex,我需要通过Latex将引号(“)字符传递给shell,以便使用printf命令: \makeatletter \newcommand{\calcCorrelation}[1]{{\input{|"awk ' { ... } END{... printf("\@percentchar.2f",r); } ' #1; "} }} \makeatother 我遇到语法错误,因为\@percentchar.2f周围的引号未传递。我如何修复此问题?请提前感谢!尝试使用一个变量--类似于以下内容: \

我需要通过Latex将引号(“)字符传递给shell,以便使用printf命令:

\makeatletter
\newcommand{\calcCorrelation}[1]{{\input{|"awk '
{
...
}
END{...
printf("\@percentchar.2f",r); 
}
' #1; 
"}
}}
\makeatother
我遇到语法错误,因为\@percentchar.2f周围的引号未传递。我如何修复此问题?请提前感谢!

尝试使用一个变量--类似于以下内容:

\makeatletter
\newcommand{\calcCorrelation}[1]{{\input{|"awk -v pc="\@percentchar.2f" '
{
        ...
}
END {
        ...
        printf(pc,r); 
}
' #1; 
"}
}}
\makeatother

警告:我不知道在这种情况下,您是否需要/想要\@percentchar.2f左右的引号?

您是否绝对确定需要从latex进入shell来运行awk命令?latex提供了一个很好的“计算”源“行动。你只需要搜索一下就可以了。是的,我肯定这一点。AWK Shell脚本处理实验数据,实验数据存储在csv文件中(路径通过参数#1传递)。我认为Latex无法进行这些计算,它不是为此而构建的。如果您的
awk
脚本不是动态的,请将其写入一个文件,只需使用
awk-f scriptname
调用即可。该脚本未列为特殊字符,但“终止字符串”。所以这可能是可行的:
printf(“'”\@percentchar.2f“'”,r)