Search code examples
shellunixgnuradio

Unexpected end of file


I am trying to modify the .tcshrc file in OSX to include shell environment variables for installing GNURadio. However, it returns me an error message like this

"-bash: /Users/admin/.tcshrc: line 22: syntax error: unexpected end of file"

The modified tcshrc file is as follows

 if (-r /opt/local/bin/port) then
      setenv LDFLAGS "-L/opt/local/lib ${LDFLAGS}"
      setenv PATH ${HOME}/bin:/opt/local/bin:/opt/local/sbin:${PATH}
      setenv MANPATH /opt/local/share/man:${MANPATH}
      setenv INFOPATH /opt/local/share/info:${INFOPATH}
      setenv PKG_CONFIG_PATH /opt/local/lib/pkgconfig:${PKG_CONFIG_PATH}
  endif

  # Gnuradio source directory (set up for installing gnuradio in $GR/local/)
  setenv GR $HOME/gnuradio
  setenv GR_INSTALL ${GR}/local
  setenv LDFLAGS "-L${GR_INSTALL}/lib ${LDFLAGS}"
  setenv PKG_CONFIG_PATH ${GR_INSTALL}/lib/pkgconfig:${PKG_CONFIG_PATH}
  setenv DYLD_LIBRARY_PATH ${GR_INSTALL}/lib:${DYLD_LIBRARY_PATH}

  # Set up PYTHON variables
  setenv PYTHON_CMD python
  setenv PYTHON_VERSION `${PYTHON_CMD} -V |& sed -e 's@\.@ @2' | awk '{ print $2 }'`
  setenv PYTHON_ROOT `which ${PYTHON_CMD} | sed -e s@/bin/${PYTHON_CMD}@@g`
  setenv PYTHONPATH ${GR_INSTALL}/lib/python${PYTHON_VERSION}/site-packages:${PYTHON_ROOT}/lib/python${PYTHON_VERSION}/site-packages

Many thanks for the help


Solution

  • You want BASH to read and process a set of instructions meant for a different shell! The TCSH has a c-like programming language, where as BASH and SH use some ALGOL-68 like pattern (i think). Bash simply cant process your script.

    Use the correct shell for your schript (tcsh/csh) or rewrite your script to bash syntax.

    if [ -r /opt/local/bin/port ]
      then
          export LDFLAGS="-L/opt/local/lib ${LDFLAGS}"
          export PATH=${HOME}/bin:/opt/local/bin:/opt/local/sbin:${PATH}
          export MANPATH=/opt/local/share/man:${MANPATH}
          export INFOPATH=/opt/local/share/info:${INFOPATH}
          export PKG_CONFIG_PATH=/opt/local/lib/pkgconfig:${PKG_CONFIG_PATH}
      fi
    
      # Gnuradio source directory (set up for installing gnuradio in $GR/local/)
      export GR=$HOME/gnuradio
      export GR_INSTALL=${GR}/local
      export LDFLAGS="-L${GR_INSTALL}/lib ${LDFLAGS}"
      export PKG_CONFIG_PATH=${GR_INSTALL}/lib/pkgconfig:${PKG_CONFIG_PATH}
      export DYLD_LIBRARY_PATH=${GR_INSTALL}/lib:${DYLD_LIBRARY_PATH}
    
      # Set up PYTHON variables
      export PYTHON_CMD=python
      export PYTHON_VERSION=`${PYTHON_CMD} -V 2>&1 | sed -e 's@\.@ @2' | awk '{ print $2 }'`
      export PYTHON_ROOT=`which ${PYTHON_CMD} | sed -e s@/bin/${PYTHON_CMD}@@g`
      export PYTHONPATH=${GR_INSTALL}/lib/python${PYTHON_VERSION}/site-packages:${PYTHON_ROOT}/lib/python${PYTHON_VERSION}/site-packages