История изменений
Исправление vodz, (текущая версия) :
Слишком уродливо мой код на нем выглядит.
Потому что у вас удивительный комплекс: вы придумали алгоритм и бросились искать как его сделать максимально большим числом извращений.
1. Строку «a b» надо парсить как read a b, а не read -a dim, второе — это когда много строк с неизвестным количеством слов.
2. head после grep... А вы man на grep пробовали читать? Есть там ключик -m 1 , что заменит head -1
3. Если уж любите башизм «<<<», то и printf тогда уж и заменяйте им: nc $host $port <<< «$1»$'\n' , но в вашем случае можно обойтись here-document
4. Работу со строками нагляднее, проще и быстрее делать именно как работу со строками: port=${addr##*:}; [[ $port == $addr ]] && port=43 || addr=${addr%:$port}
И так далее.
Исправление vodz, :
Слишком уродливо мой код на нем выглядит.
Потому что у вас удивительный комплекс: вы придумали алгоритм и бросились искать как его сделать максимально большим числом извращений.
1. Строку «a b» надо парсить как read a b, а не read -a dim, второе — это когда много строк с неизвестным количеством слов.
2. head после grep... А вы man на grep пробовали читать? Есть там ключик -m 1 , что заменит head -1
3. Если уж любите башизм «<<<», то и printf тогда уж и заменяйте им: nc $host $port <<< «$1»$'\n'
4. Работу со строками нагляднее, проще и быстрее делать именно как работу со строками: port=${addr##*:}; [[ $port == $addr ]] && port=43 || addr=${addr%:$port}
И так далее.
Исправление vodz, :
Слишком уродливо мой код на нем выглядит.
Потому что у вас удивительный комплекс: вы придумали алгоритм и бросились искать как его сделать максимально большим числом извращений.
1. Строку «a b» надо парсить как read a b, а не read -a dim, второе — это когда много строк с неизвестным количеством слов.
2. head после grep... А вы man на grep пробовали читать? Есть там ключик -m 1 , что заменит head -1
3. Если уж любите башизм «<<<», то и printf тогда уж и заменяйте им: nc $host $port <<< «$1»$'\n'
4. Работу со строками нагляднее, проще и быстрее делать именно как работу со строками: port=${addr##*:} [[ $port == $addr ]] && port=43 || addr=${addr%:$port}
И так далее.
Исходная версия vodz, :
Слишком уродливо мой код на нем выглядит.
Потому что у вас удисительный комплекс: вы придумали алгоритм и бросились искать как его сделать максимально большим числом извращений.
1. Строку «a b» надо парсить как read a b, а не read -a dim, второе — это когда много строк с неизвестным количеством слов.
2. head после grep... А вы man на grep пробовали читать? Есть там ключик -m 1 , что заменит head -1
3. Если уж любите башизм «<<<», то и printf тогда уж и заменяйте им: nc $host $port <<< «$1»$'\n'
4. Работу со строками нагляднее, проще и быстрее делать именно как работу со строками: port=${addr##*:} [[ $port == $addr ]] && port=43 || addr=${addr%:$port}
И так далее.