如果它是一个目录,我试图附加一个文本。
calculation="$(ls -l | sed 's/[d]/This is a directory -> /')"
printf "%s" "${calculation}"
我只是想知道是否有人可以给我一个提示我的代码有什么问题
不知道你在做什么,但是:
$ calculation="$(ls -l | sed 's/^[d]/This is a directory -> d/')"
两个变化:
^
,它说该行必须以方括号中的一个字符(这d
是唯一的一个)开头。d
在替换的末尾添加了一个,因为你用你的字符串替换了它。这样,您的目录仍然具有正确的权限。你不需要[d]
。只是d
会做:
$ calculation="$(ls -l | sed 's/^d/This is a directory -> d/')"
你不需要${calculation}
:
$ echo "$calculation"
或者,如果您想使用printf
:
$ printf "%s\n" "$calculation" # Note the ending NL which printf doesn't supply
或者更简单:
$ printf "$calculation\n"