Я должен обработать общие зависимости библиотеки библиотеки из сценария удара. for
управляйте процессами пословно:
for DEPENDENCY in `otool -L MyApplication | sed 1d`
do
...
done
Что путь состоит в том, чтобы обработать результаты линию за линией?
Вы должны использовать команду read
.
otool -L MyApplication | sed 1d | \
while read i
do
echo "line: " $i
done
См. bashref для описания встроенного модуля read и его опций. Примеры использования read
в сочетании с for
можно также посмотреть в следующем учебнике.
otool -L MyApplication | sed 1d | while read line ;
do
# do stuff with $line
done
Попробуйте изменить внутренний разделитель полей на новую строку. По умолчанию bash разделяет токены пробелами при использовании цикла for. Ваша настройка IFS заставит цикл for разделять токены на основе любой строки IFS, равной (таким образом, разделение токенов списка на новые строки вместо токенов на пробелы).
[bash ] $ IFS="
"
[bash ] $ for DEPENDENCY in `otool -L MyApplication | sed 1d`
do
....
done
Вы можете использовать awk
для обработки строк. То, что именно является лучшим способом, зависит от того, что вы пытаетесь сделать.
вы также можете сделать это на awk. Нет необходимости использовать bash для цикла
otool -L MyApplication | awk 'NR>1
{
# do your stuff here since awk process line by line.
}'