如何在后续的bash命令中使用字符串?

时间:2017-05-27 22:04:40

标签: bash

我对bash语法非常不熟悉,而且我遇到了如何使用前一个操作中的字符串作为后续操作的输入的问题。这就是我现在所拥有的:

#!/bin/bash

searchTerm=$1

results=$(npm search $searchTerm --json | jq '.[].name')

for term in $results
do
  info=$(npm info $term)

  echo "####" $info
done

执行的命令如下所示并失败:

npm info "\"exampleTerm\""

如何在for循环中使用$termnpm info结合使用?

2 个答案:

答案 0 :(得分:1)

一个(长)单行将会这样做......

npm search react-redux --json | jq '.[].name' | xargs -I pkg sh -c 'echo "#### $(npm info $1)"' - pkg

答案 1 :(得分:0)

答案是使用如下的eval:

#!/bin/bash

searchTerm=$1

results=$(npm search $searchTerm --json | jq '.[].name')

for term in $results
do
  info=$(eval npm info "$term")

  echo "####" $info
done