我是 Linux 新手,我正在尝试编译一些需要首先设置环境变量的代码。该脚本在 cshrc 中,但每当我尝试运行该代码时,我都会收到“如果:数字格式错误”错误。我想改为在 bash 中运行它。有没有一种简单的方法可以将 cshrc 转换为 bashrc?
问问题
3993 次
2 回答
3
如果 bash 将成为您在 Linux 中首选的 shell,而不是寻找工具,您最好花几分钟时间学习如何在 bash 中执行此操作。除非 csh 脚本真的很复杂,否则翻译起来不太可能花费太多精力,并且完成此操作后,您将具备更好地理解未来 bash(和 csh)脚本的知识。
一些帮助您入门的提示:
- 在 csh 中,您使用
setenv
;设置环境变量 bash 使用=
+export
- 两者之间的 if 语法不同
例如:
# bash
if [ ${ORACLE_HOME:-0} = 0 ]; then
ORACLE_TMP="/tmp"
else
ORACLE_TMP=$ORACLE_HOME/tmp
fi
export ORACLE_TMP
# csh
if ($?ORACLE_HOME == 0) then
setenv ORACLE_TMP /tmp
else
setenv ORACLE_TMP $ORACLE_HOME/tmp
endif
于 2010-05-11T13:04:22.600 回答
1
是的,发布代码。有成群的 alpha 极客在这里等着为你做这种工作,有点像 Rent A Coder 但没有成本 :-)
说真的,这很可能只是这样一个事实,从记忆中,在使用时使用csh
括号表示条件,但是,直到您发布代码(至少是带有某些上下文的违规行),我们无法确定。bash
[[...]]
换句话说,csh
:
if ($number < 0) then
echo What the ...
endif
将成为bash
:
if [[ $number -lt 0 ]] ; then
echo What the ...
fi
于 2010-05-11T12:51:36.677 回答