#!/bin/bashNon è presente alcun errore, eppure sui sistemi sopra citati, quando si digita il seguente comando
#testall.sh
nets=( 0 1 2 3 4 5 6 7 8 9 10 11 12 13 16 17 )
jobs=( 32 25 28 18 10 50 33 12 13 11 11 14 18 14 13 13 )
# get length of array
length=${#nets[@]}
# use for loop read all test values
for (( i=0; i<${length}; ++i ));
do
echo net_${nets[$i]}
./main ${jobs[$i]} net_${nets[$i]}
echo -e "\n"
done
exit 0
sh testall.sh si ottiene questo messaggio di errore testall.sh: 3: Syntax error: "(" unexpected il problema è veramente molto subdolo e, quindi, di difficile soluzione.Come detto quello in questione è uno script bash, /bin/sh è un link simbolico che normalmente fa riferimento a /bin/bash e se così fosse tutto dovrebbe funzionare a dovere. Purtroppo spesso /bin/sh fa invece riferimento al programma /bin/dash, e quindi la sintassi non viene interpretata correttamente e si ottiene un errore.
Per risolvere è sufficiente
- modificare il link simbolico /bin/sh in modo che punti a /bin/bash
- rendere i nostri script eseguibili e lanciarli come segue
./testall.shin questo modo il corretto interprete sarà automaticamente selezionato all'avvio dello script.
Nessun commento:
Posta un commento