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