Kirjoittaja Aihe: [RATKAISTU]Suoritettavien tiedostojen ajo massana esim. where komennon tulosteil  (Luettu 2512 kertaa)

JA5U

  • Käyttäjä
  • Viestejä: 463
    • Profiili
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.
« Viimeksi muokattu: 23.10.21 - klo:14.22 kirjoittanut JA5U »

Tomin

  • Palvelimen ylläpitäjä
  • Käyttäjä / moderaattori+
  • Viestejä: 11481
    • Profiili
    • Tomin kotisivut
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 ~>
Automaattinen allekirjoitus:
Lisäisitkö [RATKAISTU] ketjun ensimmäisen viestin aiheeseen ongelman ratkettua, kiitos.

JA5U

  • Käyttäjä
  • Viestejä: 463
    • Profiili
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'
« Viimeksi muokattu: 23.10.21 - klo:14.28 kirjoittanut JA5U »