Вы правы, когда говорите, что «не правильно используете стандартный ввод». Фактически, из предоставленного вами фрагмента сценария ваш сценарий предполагает, что вы получаете файлы в качестве аргументов в командной строке... вы вообще не используете стандартный ввод!
В правом верхнем углу действия «Выполнить сценарий оболочки» под крестиком находится раскрывающийся список с двумя параметрами: «Передать ввод: на стандартный ввод» и «Передать ввод: в качестве аргументов». Эти параметры определяют, как выбранные файлы передаются вашему сценарию. Если выбрана опция «в качестве аргументов», ваш скрипт должен использовать следующий шаблон
for f in "$@"; do
# so stuff here
done
Этот шаблон предоставляется самим действием, когда выбрано «в качестве аргументов».
С другой стороны, если выбрана опция «to stdin», то ваш сценарий должен использовать этот шаблон:
while read fname; do # read each line - assumes one file name per line
# do clever stuff with the filename
echo $fname # to illustrate we'll simply copy the filename to stdout
done
(Если вы не знакомы с bash-скриптами, все после # в строке является комментарием)
Обратите внимание, что шаблон, предоставленный действием скрипта, представляет собой простую единственную команду
cat
На мой взгляд не очень полезно.
Обратите внимание, что до тех пор, пока вы фактически не введете текст в область сценария, изменение между «на стандартный ввод» и «в качестве аргументов» изменит содержимое поля сценария (я предполагаю, что это намек на то, как должен выглядеть ваш сценарий), но как только вы что-то введете , переключение больше не происходит.
person
ehzone
schedule
31.08.2012