2017-05-27 5 views
0

私はかなり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\"" 

にはどうすればnpm infoとの組み合わせで、forループで$termを使うのですか?

+0

回答:情報= $(エバールNPM情報 "$用語" ) – Geuis

+0

'npm searchの出力は何ですか?$ searchTerm --json | jq '。[]。名前は 'のように見える? –

答えて

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 
1

A(ロング)ワンライナーはそれを行います...

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