0

两个问题

  1. 使用 <<
  2. 在搜索此类问题的答案时,是否有 <<< 的名称会有所帮助?(“IFS”“三个左尖括号”等并不是特别热门的搜索词。)

细节

以下命令在 MacOS 终端上提供尾随 \n:

版本 A(使用回声)

    echo SomeText | openssl dgst -sha512 -hex -hmac SomeHmacKey

版本 B -(使用 <<<)

    openssl dgst -sha512 -hex -hmac SomeHmacKey <<< SomeText

版本 A 和 B 的结果都是858337c9909dccb8cb21293f057bd8aa1a90a5ea084b36825e28f8f6a2ef9d813a991dfa7d25fe4afd1f78004213a23dd4e71e05e4cea7f9ad4bf1c5adbd224a,这是 的结果SomeText\n,而不是SomeText

为了去除版本 A 上的尾随 LF,我使用了解决方案

    echo -n SomeText | openssl dgst -sha512 -hex -hmac SomeHmacKey

有没有一种简洁的方法从版本 B 中去除标准输入的尾随 \n(即使用 <<< 时)?

4

1 回答 1

1

<<,<<<和其他这样的结构被称为重定向操作符

<<<特别是被称为“这里的字符串”。它添加换行符的事实及其原因在此处有详细记录。

至于如何解决这个问题,您已经知道一个好方法:只需使用管道echo -n SomeText而不是使用此处的字符串。

于 2019-05-05T22:02:59.087 回答