我正在开发一个开源跨平台效用,其中包含一些用于内务管理和基于操作系统的变量设置的包装器。这种内务管理是在它自己的脚本中进行的,并且在很大程度上是生成的。
为了简单和DRYness,我希望有一个简单的启动脚本,它选择了另一个基于操作系统运行的脚本。
本质上,这就是我想要的:
::# Somehow run this on osx/windows/linux +++
switch OSTYPE
when "win32"
windows_script.bat ARGS
when "linux"
linux_script.sh ARGS
when "darwin"
darwin_script.sh ARGS
....这样,在进行跨平台应用程序时,处理起来就更难了。该值不是在开发另一个应用程序时运行哪个脚本的特殊情况。
是否有办法在不安装外部依赖项的情况下实现这一目标?
发布于 2017-06-07 19:15:38
在我的用例中,我只需要在单独的powershell和bash脚本中使用一些类似的变量。我修改了Steven的答案,并给出了这个例子:
${0+: \} <#}
#only runs in bash and sets these variables in linux
export foo="foovalue"
export bar="barvalue"
export baz="bazvalue"
#only runs in powershell and sets the same variables#>
${0+: \} <#}
##>; $foo="foovalue"
${0+: \} <#}
##>; $bar="barvalue"
${0+: \} <#}
##>; $baz="bazvalue"它读起来像机器代码,但我正在使用terraform来模板系统上的值,我将把它推到上面。
https://stackoverflow.com/questions/25447555
复制相似问题