-1

Linuxは初めてで、最初に環境変数を設定する必要のあるコードをコンパイルしようとしています。スクリプトはcshrcにありますが、そのコードを実行しようとすると、「if:不正な形式の数値」エラーが発生します。代わりにbashで実行したいと思います。cshrcをbashrcに変換する簡単な方法はありますか?

4

2 に答える 2

3

Linuxでbashが優先されるシェルになる場合は、ツールを探すよりも、bashでこれを行う方法を数分間学習する方がよいでしょう。cshスクリプトが本当に複雑でない限り、翻訳にそれほど労力を費やすことはないでしょう。そうすれば、将来のbash(およびcsh)スクリプトをよりよく理解するための知識を身に付けることができます。

始めるためのヒント:

  • cshでは、環境変数をsetenv;で設定します。bashは=+を使用しますexport
  • if構文が2つで異なる

例えば:

# 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

はい、コードを投稿してください。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 に答える