Код: Выделить всё
#!/bin/bash
frame() {
echo "+-${1//$'\r'/-+ +-}-+"
echo "| $2 |" | column -to' |--> | ' -s$'\r'
echo "+-${1//$'\r'/-+ +-}-+"
}
IFS=$'\r';
frame "${*//?/-}" "$*"
Shell
./drawit 192.168.122.{1..5}
+---------------+ +---------------+ +---------------+ +---------------+ +---------------+
| 192.168.122.1 |--> | 192.168.122.2 |--> | 192.168.122.3 |--> | 192.168.122.4 |--> | 192.168.122.5 |
+---------------+ +---------------+ +---------------+ +---------------+ +---------------+
Да. Если нужны пробелы в словах блока необходимо заключать их в кавычки или экранировать сам пробел
Shell
./drawit {a..c}\ {1..3}
+-----+ +-----+ +-----+ +-----+ +-----+ +-----+ +-----+ +-----+ +-----+
| a 1 |--> | a 2 |--> | a 3 |--> | b 1 |--> | b 2 |--> | b 3 |--> | c 1 |--> | c 2 |--> | c 3 |
+-----+ +-----+ +-----+ +-----+ +-----+ +-----+ +-----+ +-----+ +-----+