我改變了第一塊空間 - 劃定數據庫的一段代碼:重定向讀取輸出
if [[ "$(cut -d ' ' -f 1 commandnames.txt | grep -F "$2")" == "" ]] ; then
while read -r name rest; do
if [[ "$1" == "$name" ]]
then echo "$2 $rest"
else echo "$name $rest"; fi
done <commandnames.txt> commandnames.txt
echo "Renamed $1 to $2."
fi
然而,> commandnames.txt
不工作,而不是清除文件。當輸出到stdout時它工作正常。我試圖把while
循環,直到標準輸出重定向到一個子shell,但它似乎沒有工作。任何想法爲什麼它不起作用?
它工作時,我輸出到標準輸出;這不是問題。我將編輯原始問題。編輯:好的,我看到你的編輯。截斷髮生在中間命令? – bb010g
@ bb010g是的,它不起作用__因爲你試圖將輸出重定向到__same文件___。 – devnull