在shell脚本中重定向stdout

时间:2012-05-02 00:50:19

标签: linux unix

对我来说当天是晚了,或者我在这里错过了一些天真的东西。

这是一个人为的例子

#!/bin/bash
command="ls -al > check.txt"
$command

当我在shell上运行此脚本时,由于“>”,我猜错了运营商。无论如何,我可以从shell脚本中重定向输出。我认为这很直接:

ls -la > temp.txt
ls: cannot access >: No such file or directory
ls: cannot access temp.txt: No such file or directory

2 个答案:

答案 0 :(得分:4)

#!/bin/bash
command="ls -al" 
$command > check.txt

>是Bash(和大多数shell)中的特殊字符。它不属于命令。

答案 1 :(得分:2)

以下是使用eval

执行此操作的另一种方法
#!/bin/bash
command="ls -al > check.txt"
eval $command