2017-05-27 3 views
0

Ich bin ziemlich vertraut mit Bash-Syntax und ich bin in ein Problem, wie die Verwendung von Zeichenfolgen aus einer vorherigen Operation als Eingaben in nachfolgende verwendet. Hier ist, was ich habe jetzt:Wie verwendet man Zeichenfolgen in nachfolgenden Bash-Befehlen?

#!/bin/bash 

searchTerm=$1 

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

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

    echo "####" $info 
done 

Der Befehl, sieht wie folgt aus und nicht ausführt:

npm info "\"exampleTerm\"" 

Wie verwende ich $term in der for-Schleife in Kombination mit npm info?

+0

Antwort: info = $ (eval npm info "$ term") – Geuis

+0

Was bedeutet die Ausgabe von 'npm search $ searchTerm --json | jq '. []. name'' aussehen? –

Antwort

0

Antwort ist eval wie folgt zu verwenden:

#!/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 (lang) Einzeiler wird es tun ...

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