Encontré una respuesta cuando estaba preparando esta pregunta. Otras respuestas son bienvenidas.
En un proyecto relativamente grande awk , como translate -shell , se usa la primera solución:
function parseList(returnAST, tokens,
leftBrackets,
rightBrackets,
separators,
####
i, j, key, p, stack, token) {
...
}
Los parámetros
después de ####
son locales.
awk permite llamar a la función con menos parámetros, p. parseList(ast, tokens)
o parseList(ast, tokens, lb, rb, sep)
. Por lo tanto, solo la firma es complicada.
Дальнейшее улучшение благодаря Кусалананде.
while read
не будет работать с пустым файлом. [ -s pid.txt ] || rm pid.txt
для удаления pid-файла. Однако , действительно ли у вас есть причина сохранять файл после обработки? Скорее всего, вы захотите удалить его в любом случае. while read -r line
do
kill "$line"
done < pid.txt
[ -s pid.txt ] || rm pid.txt
Вместо этого используется цикл while read
. из for $(cat...)
. Не читать строки с for .
Опция -r
указывает «не позволять обратной косой черте экранировать любые символы», что на самом деле не должно быть проблемой в файле pids, но рекомендуется всегда устанавливать, если нет особой причины не делать этого.