/ / Perché ottenere un errore di sintassi vicino a un token imprevisto durante l'esecuzione di uno script di shell in Ubuntu? - shell, ubuntu, ns2

Perché ottenere un errore di sintassi vicino a un token imprevisto durante l'esecuzione di uno script di shell in Ubuntu? - shell, ubuntu, ns2

Sto cercando di eseguire la simulazione NS-2 su Ubuntu OS.

Per essere onesti, sono nuovo del sistema operativo Ubuntu e dei file batch.

Digitando:

bash bat.sh

Sto ottenendo il seguente errore:

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 )

La seconda fila è esattamente quello che voglio fare. Invio una variabile di 200 kb, 580 kb e così via.

L'esecuzione di questo file batch su Windows funziona correttamente.

risposte:

1 per risposta № 1

Il tuo codice bash è bacato. Per prima cosa, potresti voler aggiungere il hassbang / shebang ( https://en.wikipedia.org/wiki/Shebang_(Unix) ) all'inizio del file, quindi non è necessario specificare l'interprete ogni volta che lo esegui e puoi renderlo eseguibile con chmod +x bat.sh. In secondo luogo, la sintassi utilizzata su for è sconosciuto per me ( http://tldp.org/HOWTO/Bash-Prog-Intro-HOWTO-7.html ). Preferisco scrivere qualcosa come:

#!/bin/bash

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