下面的脚本在我的基础设施中的所有服务器上运行良好。
然而,我最近发现它无法完成执行,只是挂在带有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 远程执行以及在本地执行时,脚本会挂起,如上所示。
您能提出一个通用的解决方案吗?
答案1
您的.
命令已将脚本内容逐字包含到当前 shell 会话中。其中一根线路重定向标准输出和标准错误,因此这将应用于您当前的 shell。它没有挂起;它只是没有向你展示任何东西。
一般来说,.
不是如何运行脚本。相反,使其可执行,#!
在顶部添加一行来标识用于执行它的 shell,并将其调用为/app/myscript.sh
(不带.
命令)