为什么我会在尝试运行此脚本时获取表达式语法?

时间:2015-12-30 03:54:38

标签: shell unix scripting terminal

我目前正在尝试在终端中运行Unix可执行文件(我的shell是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 个答案:

答案 0 :(得分:0)

此代码还存在其他问题,表明它是针对传统shbash编码的。

只需将#!/bin/bash作为第一行(使用系统副本bash的正确路径),它就可以在没有其他修改的情况下运行。

当然,

 chmod 755 scriptName

还需要将文件“标记”为可执行文件,如果文件保存到不在路径中的目录,则需要cd到正确的目录,或者调用为

/full/path/to/scriptName

如果您使用的是未安装bash的简化版本的Linux,并且由于某种原因无法安装它,那么请查找其他“Bourne Shell”派生的shell处理器,例如{{ 1}}。

IHTH