AWK调用sh而不是csh

AWK调用sh而不是csh,awk,csh,Awk,Csh,我相信有一个更简单的方法可以做到这一点,所以我洗耳恭听 sort -nrk 7 my_list.tsv | tail -n 1 | awk '{print("setenv INPUT_DIR `pwd`/"$1)}' .tsv中的第一项是我试图在csh中将其设置为环境变量的文件名(排序)。我想添加拉路径也。我原以为这样行,但 sh: setenv: command not found 即使我在csh。我可以获得awk系统功能以使用csh/tcsh吗 J“要添加路径,请也拉路径。” 你是说

我相信有一个更简单的方法可以做到这一点,所以我洗耳恭听

sort -nrk 7 my_list.tsv | tail -n 1 | awk '{print("setenv INPUT_DIR `pwd`/"$1)}'
.tsv中的第一项是我试图在csh中将其设置为环境变量的文件名(排序)。我想添加拉路径也。我原以为这样行,但

sh: setenv: command not found
即使我在csh。我可以获得awk系统功能以使用csh/tcsh吗


J

“要添加路径,请也拉路径。”

你是说

       echo "fileName" | awk '{printf("setenv '`pwd`'/%s\n", $1)}'
输出

       setenv INPUT_DIR /home/shellter/filename
我已经替换了你的
排序…|尾部..
因为这似乎不是你的核心问题

还请注意,单引号会阻止处理后引号命令替换。关闭单引号,获取cmd子值,然后再次打开单引号

如果这不是您的意思,请编辑您的问题并替换
排序。。。尾部…
如上所述,带有一个简单的回显“字符串”,并包含预期的输出。它还将有助于包括您当前获得的输出

为了回答标题中的问题,awk几乎肯定使用$SHELL环境变量中存储的值。或者可能还有另一个变量,
set | grep/bin/sh
setenv | grep/bin/sh
也可以这样做,因此查看对
/bin/sh
的引用在哪里设置。然后决定你将如何管理它

当我运行您的代码时,没有任何迹象表明shell已经执行。我明白了

setenv INPUT_DIR `pwd`/file
但我在ksh下运行代码。我没有csh可用于测试。但对于给定的情况,这不重要


IHTH

您发布的脚本与awk system()命令无关,因此您对该脚本或system()有何疑问?