Ubuntu Suomen keskustelualueet

Ubuntun käyttö => Ohjelmointi, palvelimet ja muu edistyneempi käyttö => Aiheen aloitti: JA5U - 22.10.21 - klo:23.13

Otsikko: [RATKAISTU]Suoritettavien tiedostojen ajo massana esim. where komennon tulosteil
Kirjoitti: JA5U - 22.10.21 - klo:23.13
Tervehdys

Eli miten saa ajettua esim. where komennon listaamat tiedostot? Ja vielä --version argumentilla

Kokeilin säveltää ja sovittaa -exec ja | xargs ym, mutta tuloksetta.

Lähimmäksi taisi viedä tämä, mutten saanut tuota version argumenttia mukaan.
Koodia: [Valitse]
where npm | tr "\n" ";" | xargs -0 -d ";" bash -c '"$1"' --version

Ja kyllä, systeemi on solmussa, monta eri versiota erilaisten asennusten jäljiltä etc. - yleensä yhtä dependecy helliä näiden nodejuttujen kanssa.
Otsikko: Vs: Suoritettavien tiedostojen ajo massana esim. where komennon tulosteille
Kirjoitti: Tomin - 22.10.21 - klo:23.26
Anna bashin -c:lle arvoksi tuo koko komento. Käytännössä siis siirrä viimeinen puolilainausmerkki (') ihan loppuun. Tuo on vähän sellainen erikoisuus tuon -c vivun kanssa:
Koodia: [Valitse]
tomi@tomin-xps ~> bash -c echo foo

tomi@tomin-xps ~> bash -c 'echo foo'
foo
tomi@tomin-xps ~>
Otsikko: Vs: Suoritettavien tiedostojen ajo massana esim. where komennon tulosteille
Kirjoitti: JA5U - 23.10.21 - klo:14.22
Anna bashin -c:lle arvoksi tuo koko komento. Käytännössä siis siirrä viimeinen puolilainausmerkki (') ihan loppuun. Tuo on vähän sellainen erikoisuus tuon -c vivun kanssa:
Koodia: [Valitse]
tomi@tomin-xps ~> bash -c echo foo

tomi@tomin-xps ~> bash -c 'echo foo'
foo
tomi@tomin-xps ~>
No näihhä se oli  :)

Ja tämän myötä selkis, että se luo tuloksista muuttujat tuon delimiterin mukaisesti $0...n riippuen tulosten määrästä.

Ja lopulta sisäistin nuo xargs argumentit ja toimivaan ratkaisuun johti "-n 1", joka rajoittaa em. muuttujien määrän 1 per kutsu:
Koodia: [Valitse]
where npm | tr "\n" ";" | xargs -n 1 -0 -d ";" bash -c '"$0" --version'

Ja hieman paranneltu eli näyttää alkuperäisen where tulosteen eli suoritettavan tiedoston polun  :)
Koodia: [Valitse]
where npm | tr "\n" ";" | xargs -n 1 -0 -d ";" bash -c 'echo -n "$0 => "; "$0" --version'