Aix
由於帶有 ksh shell 的 AiX 伺服器上的“exec”,腳本掛起
下面的腳本在我的基礎設施中的所有伺服器上執行良好。
但是,我最近發現它無法完成執行,只是掛在帶有
ksh
shell 的 Aix 伺服器上。cat myscript.sh export LOG="./test.log" echo "Starting" exec >$LOG 2>&1 echo "Completed"
下面是我如何執行這個腳本
user1@myhost# . /app/myscript.sh Output: Starting <hangs here>
我希望這個腳本可以在 AiX、Solaris 和 Linux 等不同類型的作業系統上執行。
注意:此腳本是從我們用於自動化的遠端伺服器放置和執行的。該腳本在使用 ssh 遠端執行以及在本地執行時掛起,如上所示。
你能提出一個通用的解決方案嗎?
您的
.
命令已將腳本內容逐字包含到您目前的 shell 會話中。其中一行重定向stdout和stderr,因此這將應用於您目前的 shell。它沒有掛起;它只是沒有向你展示任何東西。一般來說,
.
不是如何執行一個腳本。相反,使其可執行,#!
在頂部添加一行以標識用於執行它的 shell,並將其稱為/app/myscript.sh
(不帶.
命令)