[英]Run bash commands and csh commands in same script
我正在查看一个项目,发现有两个脚本:
一个在bash中运行,另一个在csh中运行。
是否有任何方法可以合并两个文件并仅作为一个脚本和一个文件运行,这意味着合并后不应该存在较早的文件? 这样可以减少代码大小,并且将更加用户友好。
例如:
#!/bin/sh
setenv PROJ_ROOT $PWD
setenv PROJ_OS freebsd
setenv OS freebsd
#!/bin/csh
export ICP=`pwd`
#both /sh
if `uname -r | grep -c "10.2-RELEASE"` == 1 setenv PROJ_WITHOUT_THREAD 1
您的示例脚本没有任何意义; Shell脚本无法在其父进程中设置变量。
对于表面的兼容性骇客,您可以声明一个函数setenv
; 那么大多数示例脚本将在sh
运行。
setenv () {
"$1"=$2
export "$1"
}
我相信您的if
子句在两个shell中都将是语法错误。 我想不出一种可移植的方法,但是我的建议是无论如何都放弃csh
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.