Bash Скрипт не запускается - неожиданный и неожиданный токен Word - PullRequest
0 голосов
/ 19 июня 2020

Итак, у меня есть 1 bash скриптов,

findFungible. sh

#!/bin/bash
for file in $*;
    for word in $(cat $file);
        if [ $word == Fungible ];
            echo Fungible found
        fi
    done
done

Который должен проверять файлы, если они содержат слово взаимозаменяемые. Это в значительной степени дословно из моего примера с лекцией.

Итак, если я запустил его с bash findFungible.sh, я получу:

findFungible.sh: line 2: syntax error near unexpected token "$\r''
'indFungible.sh: line 2: 'for file in $*;

Так что я думаю, что это как-то связано с windows добавление дополнительных символов \ r в строку или что-то в этом роде. Поскольку после $.

стоит \ r, то, если я запустил его с помощью sh findFungible.sh, я получу:

findFungible.sh: 2: findFungible.sh Syntax error: word unexpected (expecting "do")

Любая помощь будет огромной, спасибо.

1 Ответ

0 голосов
/ 19 июня 2020

Как кто-то упомянул в ответе, у вас есть синтаксические ошибки в этом, а это означает, что вам не хватает «делать» и «тогда».

#!/bin/bash
for file in $*; do
    for word in $(cat $file); do
        if [ $word == Fungible ]; then
            echo Fungible found
        fi
    done
done

И да, как указано в ответе, bash очень чувствителен к пробелам, новым строкам и кавычкам, я не буду здесь вдаваться в подробности.

...