Aix

由於帶有 ksh shell 的 AiX 伺服器上的“exec”,腳本掛起

  • September 19, 2020

下面的腳本在我的基礎設施中的所有伺服器上執行良好。

但是,我最近發現它無法完成執行,只是掛在帶有kshshell 的 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 會話中。其中一行重定向stdoutstderr,因此這將應用於您目前的 shell。它沒有掛起;它只是沒有向你展示任何東西。

一般來說,.不是如何執行一個腳本。相反,使其可執行,#!在頂部添加一行以標識用於執行它的 shell,並將其稱為/app/myscript.sh(不帶.命令)

引用自:https://unix.stackexchange.com/questions/610186