2015-12-28 107 views
0

我用下面的代碼寫入到一個名爲maintainence.logSTDERR重定向到STDOUT,然後到一個文件

`LOCALHOST:>less wrap.sh | grep avsp 

avsp=$df -kh | grep "/global/backups" | awk -F " " '{ print $4 }'2>&1
echo "Info $DATE: Available diskspace $avsp" >> maintainence.log
文件,但是當我運行該腳本wrap.sh LOCALHOST:>./wrap.sh我收到以下輸出:

df: `/lfs/wwwmnt/lt2-p-web-intra1': Stale NFS file handle 
df: `/lfs/wwwmnt/lt2-p-web-intra1': Stale NFS file handle 

但是,我的意圖是將錯誤和STDout寫入文件maintainence.log

回答

1

你基本上是說:

var=$(command) >> maintainence.log 2>&1 

這樣的重定向不影響command執行。相反,把重定向的$()內標準錯誤重定向到標準輸出和echo它以後:

var=$(command 2>&1) 
echo "$var" >> maintenance.log 

你的情況:

avsp=$(df -kh | grep "/global/backups" | awk -F " " '{ print $4 }' 2>&1) 
echo "Info $DATE: Available diskspace $avsp" >> maintainence.log 
+0

感謝您的信息。我已經提出了修改建議:avsp = $('df -kh | grep「/ global/backups」| awk -F「」''{print $ 4}''2>&1) echo「Info $ DATE:Available diskspace $ avsp「>> maintainingnce.log 但是O/P仍然是一樣的,它沒有寫入維護日誌O/p-df:'/ lfs/wwwmnt/lt2-p-web-intra1':Stale NFS文件句柄 – robotTech

+0

@VinayThupili我覺得你使用的反引號太多了。請編輯您的原始問題並粘貼您正在使用的確切命令。 – fedorqui

+0

@VinayThupili我只是說:編輯你的問題,顯示你正在使用的*精確*命令。我無法理解評論中的代碼。 – fedorqui

相關問題