我如何根据变量内容控制进程输出重定向? 我尝试了以下代码,但它把$redirect
的内容视为文件名而不是重定向。
$ redirect="2>&1 >/dev/null"
$ ls -la $redirect
ls: cannot access 2>&1: No such file or directory
$ redirect=""
$ ls -la $redirect
total 376
drwx------ 1 wakatana users 4096 Feb 5 15:32 .
drwx------ 1 wakatana users 4096 Feb 2 18:44 ..
-rw------- 1 wakatana users 390 Feb 5 13:34 .bashrc
eval
来强制执行,但你不想那样做。这不安全也不是一个好主意。 - Etan Reisnerredirect
时,所有的操作符都已经被扫描过了。可以参考Bash如何处理读入内容。因此,在这里,2>&1
不会被解释为重定向操作符,而只是作为一个简单的参数。请注意,本文不包括解释。 - gniourf_gniourf