String BASH:尝试在另一行上继续字符串而不引入空格
我有一个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 它产生带有额外空白
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}”
,而不会转义%
。