2010-05-11 4 views
-1

Я новичок в Linux, и я пытаюсь скомпилировать некоторый код, для которого сначала требуются переменные среды. Сценарий находится в cshrc, но всякий раз, когда я пытаюсь запустить этот код, я получаю ошибки «если: плохо сформированный номер». Вместо этого я хочу запустить его в bash. Есть ли простой способ преобразования cshrc в bashrc?Convert .cshrc to .bashrc

ответ

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 
2

Если баш будет ваш предпочтительный оболочки в Linux, вместо того чтобы искать инструмент, вы лучше было бы потратить несколько минут на изучение того, как это сделать в bash. Если сценарий csh действительно сложный, он вряд ли потребует много усилий для перевода, и, сделав это, вы будете вооружены знаниями, чтобы лучше понять сценарии будущего bash (и csh).

Несколько советов, чтобы вы начали:

  • в CSH, установить переменные окружения с setenv; Баш использует = + export
  • КРП синтаксис отличается между двумя

Например:

# 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