Используя Automator яблока для передачи имен файлов сценарию оболочки

Мне нравятся консоли также.

13
задан John 6 December 2009 в 23:41
поделиться

2 ответа

Специальная переменная $ @ представляет все аргументы командной строки, предоставленные сценарию.

Цикл for проходит через каждый из них и каждый раз выполняет файл jar. Вы можете сократить сценарий до:

for f
do
    java -Xmx1000m -jar /Users/myprog/myprog.jar "$f"
done

, поскольку по умолчанию для используется $ @ .

Вы должны заключить в кавычки $ f в конце java команда, если в аргументах есть пробелы.

10
ответ дан 1 December 2019 в 20:57
поделиться

Я не уверен, что понимаю ваш вопрос, поскольку похоже, что ваш скрипт не использует стандартный ввод. Специальный параметр $ @ расширяется до позиционных параметров, переданных в качестве аргументов в argv. Это работает так же, как если бы вы вызывали скрипт прямо из оболочки следующим образом:

$ cat >test
for f in "$@"
do
  echo $f
done
$ chmod 755 test
$ ./test a b c
a
b
c

Если вы хотите получить аргументы от stdin, вы можете сделать что-то вроде этого:

$ cat >test2
for f in $(cat)
do
  echo $f
done
$ chmod 755 test2
$ ./test2 <<EOF
> a b c
> EOF
a
b
c
2
ответ дан 1 December 2019 в 20:57
поделиться
Другие вопросы по тегам:

Похожие вопросы: