为什么在Ubuntu中运行shell脚本时在意外令牌附近出现语法错误?

时间:2015-11-29 09:28:24

标签: shell ubuntu ns2

我正在尝试在Ubuntu OS上运行NS-2模拟。

老实说,我是Ubuntu操作系统和批处理文件的新手。

输入:

bash bat.sh

我收到以下错误:

bat.sh: line 1: syntax error near unexpected token `%%a'
'at.sh: line 1: `for /L %%a in (200,380,4000) do (

bat.sh:

for /L %%a in (200,380,4000) do (
ns lab5.tcl %%akb )

第二行正是我想要做的。我发送一个200 kb,580 kb的变量,依此类推。

在Windows上运行此批处理文件可以正常工作。

1 个答案:

答案 0 :(得分:1)

您的bash代码有问题。首先,您可能希望在文件的最开头添加 hassbang / shebang https://en.wikipedia.org/wiki/Shebang_(Unix)),因此每次运行时都不需要指定解释器并且您可以使用chmod +x bat.sh使此文件可执行。其次,我在for上使用的语法对我来说是未知的(http://tldp.org/HOWTO/Bash-Prog-Intro-HOWTO-7.html)。我宁愿写一些类似的东西:

#!/bin/bash

for i in 200 380 4000
do
   ns lab5.tcl ${i}kb
done