2017-03-02 95 views
0

我執行以下bash腳本:也可申請分配標準輸入標準輸出分配到該文件

#!/bin/env bash 
exec 0<log 

我的理解是,它永久性地重新分配這個bash進程日誌文件的標準輸入。所以,當我跑

ls > log 

我希望我通過「LS」標準輸入。由於我沒有重新分配標準輸出,我還期望在終端中看到「ls」命令的結果(我通常會看到標準輸出)。但是,我在日誌文件中看到了「ls」的輸出。爲什麼stdout在日誌文件中而不是終端?

回答

1

ls寫入任何文件,它是給定的標準輸出。沒有重定向,那就是它從它的父項(你的腳本)繼承的任何文件。通過重定向,您明確提供了標準輸出文件log

這與文件log可能用於的任何其他文件無關。

相關問題