bash echo函数的问题

bash echo函数的问题,bash,echo,Bash,Echo,如何在bash中使用echo进行打印,使行不会跳转到变量长度的正确位置?您能否帮助我使用命令执行此操作?请尝试使用printf shell命令: $ printf "%5d %s\n" 1 test 1 test $ printf "%5d %s\n" 123 another 123 another 尝试使用printf shell命令: $ printf "%5d %s\n" 1 test 1 test $ printf "%5d %s\n" 123 another

如何在bash中使用echo进行打印,使行不会跳转到变量长度的正确位置?您能否帮助我使用命令执行此操作?请尝试使用printf shell命令:

$ printf "%5d %s\n" 1 test
    1 test
$ printf "%5d %s\n" 123 another
  123 another
尝试使用printf shell命令:

$ printf "%5d %s\n" 1 test
    1 test
$ printf "%5d %s\n" 123 another
  123 another

要修剪变量中的前导空格,可以使用Bash参数展开:

var="   value"
echo "${var#"${var%%[![:space:]]*}"}"

要修剪变量中的前导空格,可以使用Bash参数展开:

var="   value"
echo "${var#"${var%%[![:space:]]*}"}"

使用选项卡分隔列

echo -e "$var1\t$var2"
或者,更好的方法是使用printf:

printf "%s\t%s\n" $var1 $var2
或者,如图所示,即使使用字符串也要使用字段宽度-连字符使其左对齐:

printf "%-6s %-8s %10s\n" abcde fghij 12345

使用选项卡分隔列

echo -e "$var1\t$var2"
或者,更好的方法是使用printf:

printf "%s\t%s\n" $var1 $var2
或者,如图所示,即使使用字符串也要使用字段宽度-连字符使其左对齐:

printf "%-6s %-8s %10s\n" abcde fghij 12345

还是第一个变量的原因列向右跳你给我的建议有助于变量之间的空格,但不要忽略每个变量的长度如果你需要进一步的帮助,你必须给出一个你所看到的例子。仍然是第一个变量的原因列向右跳你给我的建议有助于变量之间的空格,但不能忽略每个变量的长度如果你需要进一步的帮助,你必须给出一个你看到的例子。你可以省略内部引号集:echo${var${var%%[![:space:]]*}你可以省略内部引号集:echo${var${var%%[![:space:]*}