我的makefile中有这个
test:
cat t.txt | sort -t $$'\t' -k 2,2
但是“make test”给了我这个错误
猫t.txt | sort -t $'\t' -k 2,2 sort: multi-character tab `$\t' make: * [test] Error 2
在 Redhat linux 上工作正常,但在 Ubuntu linux 上失败
$'\t'
您尝试使用的语法是 bash-ism,但默认情况下 gmake/bin/sh
用作 shell。您可以覆盖您的 makefile 中的 SHELL 变量,如下所示:
SHELL=/bin/bash
或为此特定命令显式调用 bash:
test:
bash -c "cat t.txt | sort -t $$'\t' -k 2,2"
问:这是在什么操作系统上失败?
建议:
您可以替换一个实际的选项卡,例如sort -t "<Ctl-V><Tab>"