2015-12-30 37 views
1

我目前正在運行中端Unix的可執行文件(我的殼是TCSH)我在網上下載的,我不斷收到以下錯誤:爲什麼我得到如果:表達式語法,當我嘗試運行此腳本?

if: Expression Syntax

這裏是我試圖運行該腳本:

if [ -f .1 ] 
then 
cc -o xrdcalc .source/xrdcalc-1.1.c -lm 
chmod 700 xrdcalc 
./xrdcalc 
else 
platform=`uname` 
echo 
echo 
echo "You are using \"xrdcalc\" for the first time on $platform , read the \"Readme.txt\" file and then proceed" 
echo 
echo 
echo "Press enter...." 
read char; 
echo `date` > .1 
mkdir .source 
mv xrdcalc-1.1.c .source 
cc -o xrdcalc .source/xrdcalc-1.1.c -lm 
./xrdcalc 
fi 

我幾乎沒有運行腳本的經驗,我相信這是一個簡單的修復。

+1

你可以嘗試用圓括號 '()' 在'if'聲明,對TCSH我覺得呢?可能'endif'關閉它? – Hemang

+0

另請參閱,[tcsh腳本如果語句](http://stackoverflow.com/questions/19799021/tcsh-script-if-statement),在tcsh中,您需要用括號代替方括號 –

回答

0

此代碼還存在其他問題,表明它已被編碼爲傳統的shbash

只需將#!/bin/bash作爲第一行(使用正確的路徑到您系統的bash副本),並且它應該沒有其他修改。

當然,

chmod 755 scriptName 

還需要「標記」的文件爲可執行,如果文件沒有路徑保存到一個目錄下,你需要或者cd到正確的目錄,或作爲調用

/full/path/to/scriptName 

如果你正在使用Linux的簡化版本,沒有安裝bash,你不能安裝它由於某種原因,然後尋找其他'Bourne Shell'派生的shell處理器,如ash, dash, ksh, sh

IHTH

+0

謝謝工作很好! – ctkw

相關問題