crop.sh: строка 3: синтаксическая ошибка рядом с неожиданным токеном `('crop.sh: строка 3:` файл foreach (`ls * .pdf`)' - PullRequest
0 голосов
/ 25 мая 2018

В дальнейшем я написал свой bash-файл crop.sh.Тем не менее, я получаю эту ошибку при запуске в Windows.Я использовал Cygwin.Я также установил git и использовал mingw64.Я много искал, но не смог решить эту проблему.

#!/bin/csh

foreach file (`ls *.pdf`)

 pdfcrop --ini $file $file

end

Сообщение об ошибке:

crop.sh: line 3: syntax error near unexpected token `('
crop.sh: line 3: `foreach file (`ls *.pdf`)'

Ответы [ 2 ]

0 голосов
/ 26 мая 2018

Вы использовали тег bash и упомянули bash, но ваш код csh.Не уверен, что вам нужно решение bash или исправить ваш csh, но вы наверняка можете сделать:

#!/bin/bash

for file in *.pdf; do
   pdfcrop --ini "$file"  "$file"
done

Поскольку csh обычно считается неподходящим для сценариев, это, вероятно, хорошиймаршрут принять.

0 голосов
/ 26 мая 2018

Опасность, Уилл Робинсон.Нередко считается, что csh считается вредным .

Тем не менее, вы можете ( СЛЕДУЕТ! ) использовать глобусы вместо парсинга вывода ls, независимо от вашегоракушка.Я не видел ваших имен файлов, но я подозреваю, что проблема может быть в нестандартном символе в имени файла.

Вместо этого попробуйте это:

#!/bin/csh

foreach file ( *.pdf )

  pdfcrop --ini "$file" "$file"

end

Или даже лучше, сделайте этов оболочке POSIX:

#!/bin/sh

for file in *.pdf; do
    pdfcrop --ini "$file" "$file"
done
...