-1

我是 Linux 新手,我正在尝试编译一些需要首先设置环境变量的代码。该脚本在 cshrc 中,但每当我尝试运行该代码时,我都会收到“如果:数字格式错误”错误。我想改为在 bash 中运行它。有没有一种简单的方法可以将 cshrc 转换为 bashrc?

4

2 回答 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 回答