String BASH:尝试在另一行上继续字符串而不引入空格

String BASH:尝试在另一行上继续字符串而不引入空格,string,bash,echo,continue,String,Bash,Echo,Continue,我有一个BASH脚本,其条件与此类似: dirImg="/var/log/junk" sizeLimitMsg="1 gig" if [ 0 == "$fileSize1" ];then echo "All directories under $dirImg are within the allowed\ $sizeLimitMsg size limit" >> $emailBody else #do something else fi 它产生带有额外空白

我有一个BASH脚本,其条件与此类似:

dirImg="/var/log/junk"
sizeLimitMsg="1 gig"

if [ 0 == "$fileSize1" ];then
    echo "All directories under $dirImg are within the allowed\
    $sizeLimitMsg size limit" >> $emailBody
else
    #do something else
fi
它产生带有额外空白的输出:

All directories under /var/log/junk are within the allowed   1 gig size limit
我猜额外的和不需要的空白来自于在上面的条件中缩进变量$sizeLimitMsg


我是否可以继续这一行并缩进代码,而不需要额外的和不需要的空格?

不要在引号中包含缩进:

echo "All directories under $dirImg are within the allowed" \
     "$sizeLimitMsg size limit"

不要在引号中包含缩进:

echo "All directories under $dirImg are within the allowed" \
     "$sizeLimitMsg size limit"
备选方案:

printf "%s %s\n" "All directories under ${dirImg} are within the allowed" \
    "${sizeLimitMsg} size limit" >> "${emailBody}"
备选方案:

printf "%s %s\n" "All directories under ${dirImg} are within the allowed" \
    "${sizeLimitMsg} size limit" >> "${emailBody}"

删除引号。删除引号。或者,
printf'在%s下的所有目录都在%i大小限制之内\n'$dirImg'$sizeLimitMsg'
如果您愿意,可以在格式字符串后面加一个转义换行。@tripleee我同意这是一种更好的格式。试图为我更糟糕的格式辩护:恐怕OP会尝试在格式字符串中添加随机文本,并将消息更改为
printf“在%s%限制下%s下的所有目录都是安全的\n”“${dirImg}”“${percUsageAllowed}”
不转义
%
。或者,
printf'在%s下的所有目录都在%i大小限制之内\n'$dirImg'$sizeLimitMsg'
如果您愿意,可以在格式字符串后面加一个转义换行。@tripleee我同意这是一种更好的格式。试图为我更糟糕的格式辩护:恐怕OP会尝试在格式字符串中添加随机文本,并将消息更改为
printf“在%s%限制下%s下的所有目录都是安全的\n”“${dirImg}”“${percUsageAllowed}”
,而不会转义
%