проблема с функцией bash echo - PullRequest
1 голос
/ 08 августа 2010

как мне печатать, используя echo в bash, чтобы строка не "перепрыгивала" на нужную причину длины переменной. Можете ли вы помочь мне с командой, которая делает это

Ответы [ 3 ]

5 голосов
/ 08 августа 2010

Попробуйте использовать команду оболочки printf:

$ printf "%5d %s\n" 1 test
    1 test
$ printf "%5d %s\n" 123 another
  123 another
1 голос
/ 08 августа 2010

Чтобы обрезать начальные пробелы внутри переменной, вы можете использовать расширение параметра Bash:

var="   value"
echo "${var#"${var%%[![:space:]]*}"}"
0 голосов
/ 08 августа 2010

Используйте вкладки для разделения столбцов.

echo -e "$var1\t$var2"

или, лучше, используйте printf, чтобы сделать это:

printf "%s\t%s\n" $var1 $var2

Или, как Грег Хьюгилл показал , используйте ширину поля (даже со строками - дефис делает их выровненными по левому краю):

printf "%-6s %-8s %10s\n" abcde fghij 12345
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...