2017-05-28 140 views

回答

0

exec命令將當前進程替換爲指定的進程,因此Unix Shell不再是Unix Shell,而是突然變爲C Shell(csh,它恰好是一種Unix Shell)。爲什麼?這只是事實上的標準。

0

exec將用新進程替換當前shell進程。如果你跳過這個命令,你輸入的命令將作爲一個孩子開始,當你退出孩子時返回你的shell。它期望可執行文件作爲第一個參數啓動。

csh(第一個參數)是可執行文件的名稱。它將在PATH中搜索。通常它會找到一個安裝了C Shell的系統(如/bin/csh)或一個C Shell克隆(例如安裝在傳統名稱下的tcsh)。

因此,您正在用C Shell取代當前的shell會話。除非你是一個有鬍鬚的Unix專家,否則你不會那麼想。通常情況下,C Shell在Posix或Bourne Shell中有%提示符而不是>

您可以通過註銷從中恢復。下一次登錄正常的默認shell(很可能不是csh)將會啓動。要使外殼的開關永久使用,請使用chsh(更改外殼)命令。