1

如果它是一个目录,我试图附加一个文本。

calculation="$(ls -l | sed 's/[d]/This is a directory -> /')"

printf "%s" "${calculation}"

我只是想知道是否有人可以给我一个提示我的代码有什么问题

4

1 回答 1

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"
于 2014-12-29T14:10:58.730 回答