2013-05-05 72 views

回答

7

发生了什么事是$x作为单个命令执行。 shell不是“重新解析”$x的内容,所以它不是特别设置重定向和产卵sort

发生什么是cat得到三个参数:file,|sort。您在该目录中没有名为|sort的文件,因此cat无法打开它们。 (我猜是什么错误说反正)

你可以让你通过运行预期的结果:

eval "$x" 

我会避免使用eval如果可以的话,虽然,它can be dangerous

前缀你有LC_ALL=命令,要求对国际网站帮助之前获得英语的错误消息。
例如LC_ALL= $x

+0

这确实是什么错误消息说(没有这样的文件或目录)。 – EOL 2013-05-05 15:44:01

+0

谢谢@Mat和@EOL。我希望在'until'命令中使用一个变量,例如'until $ var'来减少代码行,因为在不同情况下,'until'命令语句会有所不同。在其中一种情况下,我需要执行像'var =“command1 | command2”'这样的任务。现在它不起作用。有没有解决这个问题的另一种方法? – 2013-05-05 16:02:43

+2

@ Wenhao Yang:你应该为此提出一个新问题,但一定要包括足够的细节,因为这看起来有点奇怪。你不能使用函数而不是变量吗? – Mat 2013-05-05 16:08:24