这意味着什么:exec`ksh -c“echo / usr / bin / expectk \”$ 0“ – $ *”`

在我的公司,有很多维护脚本。 我发现一个开始像:

#!/bin/sh # the next line restarts using expectk \ exec `ksh -c "echo /usr/bin/expectk \"$0\" -- $*"` 

但我不明白为什么以及如何重新使用expectk。

任何人帮助?

该命令看起来比它需要的更复杂。 基本上它在做什么(可以缩短到)是

 #!/bin/sh exec /usr/bin/expectk $0 -- $* 

你的脚本正在exec echo命令的输出。 上面的重写版本删除了回声,直接执行exec。 但是,更好的方法是

 #!/bin/sh exec /usr/bin/expectk "$0" -- "$@" 

这修复了如果脚本的任何参数包含空格都会popup的问题。