2014-12-02 62 views
2

輸出I嘗試以下方法:>的/ dev/null的2>&1仍具有在標準輸出

#!/bin/bash 

var=$(< temp.temp) > /dev/null 2>&1 

echo $var 

我預期沒有輸出temp.temp是否存在。 但是當我嘗試這些命令時,它仍然有輸出。你能幫忙嗎?謝謝。

+0

你爲什麼不指望沒有輸出? – 2014-12-02 10:00:08

回答

1

使用方法如下:

{ var=$(<temp.temp); } 2>/dev/null 
1

var=$(< temp.temp) > /dev/null 2>&1

應該

var=$(>/dev/null 2>&1 < temp.temp)

您分配一個變量的值,並重定向分配,這是沒有意義的輸出。

你需要的是第一重定向stdoutstderr,然後嘗試從文件中讀取,因爲它會從左至右解釋,也就是說,當你嘗試讀取temp.tempstdoutstderr還沒有被重定向,因此您會看到有關未找到文件或文件內容的消息。

相關問題