linux – 当分割成多行时,如何避免echo中的空格
|
我有一个很长的字符串由echo命令打印.通过这样做,我希望它完美缩进.
echo "This is a very long string. An" "d it is printed in one line" Output: This is a very long string. And it is printed in one line 但是当我尝试缩进它时,echo语句也缩进了.它增加了额外的空间. echo "This is a very long string. An"
"d it is printed in one line"
Output:
This is a very long string. An d it is printed in one line
我找不到任何可以完美做到这一点的工作反应. 解决方法这里的问题是你给echo两个参数,它的默认行为是打印它们,中间有一个空格:$echo "a" "b" a b $echo "a" "b" a b $echo "a" > "b" a b 如果要完全控制要打印的内容,请使用带有printf的数组: lines=("This is a very long string. An"
"d it is printed in one line")
printf "%s" "${lines[@]}"
printf "n"
这将返回: This is a very long string. And it is printed in one line 或者作为suggested by 123 in comments,使用echo也将数组设置IFS设置为null: # we define the same array $lines as above
$IFS=""
$echo "${lines[*]}"
This is a very long string. And it is printed in one line
$unset IFS
$echo "${lines[*]}"
This is a very long string. An d it is printed in one line
# ^
# note the space
从Bash manual → 3.4.2. Special Parameters开始:
有趣的阅读:Why is printf better than echo?. (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
