shell - 为什么在 Ubuntu 中运行 shell 脚本时出现意外标记附近的语法错误?

标签 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 上运行此批处理文件可以正常工作。

最佳答案

您的 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

关于shell - 为什么在 Ubuntu 中运行 shell 脚本时出现意外标记附近的语法错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33981273/

相关文章:

c++ - 如何将整数数组从 Tcl 传递到 C++?

c++ - 一个函数可以使用点运算符调用另一个函数吗

c - Linux:写一个C程序,那个 'controls'一个shell

shell - 如何替换docker镜像中的conf文件中的文本

ubuntu 16.04 屏幕变成灰度

ubuntu - Ansible 剧本错误!在/home/中找不到角色 'Juniper.junos'

r - 构建 R 包和错误 "ld: cannot find -lgfortran"

linux - sed如何在匹配模板时插入2次替换?

linux - 脚本文件中的 mkdir -p 是什么意思?

c++ - Scheduler::instance().clock() 返回什么?