我试图在ESXi shell中运行一个bash shell脚本。
认为ESXi是posix兼容的,但posix编译器抛出了很多语法错误。
如果有人知道答案,请告诉我。
手册列出了在POSIX模式下运行时的变化行为。您应相应地调整您的脚本。
POSIX模式
下发生变化的列表:
$PATH
以找到新位置。这也可以使用“shopt -s checkhash
”实现。Done(status)
”。Stopped(signame)
”,其中signame是例如SIGTSTP
。bg
内置使用所需格式描述放置在后台的每个作业,其中不包括该作业是否为当前或先前作业的指示。PS1
和PS2
对‘!’
扩展为历史记录编号,对‘!!’
扩展为‘!’
,并且对PS1
和PS2
的值执行参数扩展,无论promptvars
选项的设置如何。$ENV
),而不是正常的Bash文件。~/.sh_history
(这是$HISTFILE
的默认值)。kill -l
’的输出将所有信号名称打印在单行上,用空格分隔,而不带‘SIG
’前缀。kill
内置不接受带有‘SIG
’前缀的信号名称。.
文件名中找不到文件名,则退出。.
或source
内置读取的脚本中存在语法错误,或者在eval
内置处理的字符串中存在语法错误,则退出。${...}
扩展的解析和扩展不再将单引号视为特殊字符,并且除了定义为执行模式删除的操作符之一外,不能用于引用闭合大括号或其他特殊字符。在这种情况下,它们不必出现为
bash --posix scriptname
来模拟其行为。 - devnullbusybox
的bash shell。 - anishsane