我试图附加一个文本,如果它是一个目录。
calculation="$(ls -l | sed 's/[d]/This is a directory -> /')"
printf "%s" "${calculation}"
我只是想知道是否有人可以给我一个关于我的代码错误的提示
答案 0 :(得分:2)
不确定你在做什么,但是:
$ 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"