komennon tulos muuttujaksi ?

1. Löysin lopulta itse ratkaisun tähän.

Mutta nettisivulla on silti harhaanjohtavia ohjeita tästä, miksi ?

Esimerkki: haluaisin batch -tiedoston (= bash -script), joka toimisi kuten truename MS-DOSissa.

esimerkiksi näin:

truename file1.txt

haluttu komennon tuloste:

/home/username/file1.txt

--------------------- Ratkaisu: truename ----------------------
#!/bin/bash
hak=$(pwd)
echo "$hak$1"
---------------------- Ratkaisu loppuu --------------------------

Ratkaisuun tarvittavat tiedot löysin täältä:

http://www.cyberciti.biz/faq/unix-linux-bsd-appleosx-bash-assign-variable-command-output/

Mutta sielläkin tuli ENSIN vastaan harhaanjohtava ohje:

virheellinen esimerkki:

now=`date`

toimiva esimerkki:

now=$(date)

Lopuksi:

chmod 544 truename

------------

Tällä kertaa halusin tarkastella netistä löytyvää .doc -tiedostoa (MSWORD, mutta tehty liian uudella versiolla verrattuna käytössäni olevaan wordpad.ex:en windowsissa, joten haluan avata tämän esim. openofficella linuxissa sen sijasta).

Linkki dokumenttiin:

http://tinyurl.com/scancodedoc

jos haet wget:llä, niin seuraavaksi:

mv scancodedoc scancode.doc

Jos haet selaimella, ehkä haluat:

http://preview.tinyurl.com/scancodedoc
268
Äänestä

Muut lukivat myös

Vastaukset 2

Vanhimmat

Korjaus edelliseen:

siis NÄIN:

--------------------- Ratkaisu: truename ----------------------
#!/bin/bash
hak=$(pwd)
echo "$hak/$1"
---------------------- Ratkaisu loppuu --------------------------

Alkuperäisestä unohtui tuo "/" echo -riviltä, jonka seurauksena tiedostonimi olisi liimautunut suoraan kiinni hakemistonimeen ilman "/" -merkkiä välissä !

Äänestä

>> Mutta sielläkin tuli ENSIN vastaan harhaanjohtava ohje... >>

Ihan piti koklata molemmat tavat (eli komennon tuloste muuttujan arvoksi)

now1=$(date)
now2=`date`

Täällä molemmat toimi (sekä suoraan päätteeltä, että bash skriptissä).
Ihan vaan siksi piti koklata kun ei oo tullu jälkimmäistä tapaa käytettyä aikoihin - meikäläisen kaaliin kun tuo $(jokin_komento) istuu paremmin :)

nimim. "GNU bash, versio 4.2.37(1)-release (i486-pc-linux-gnu)"

Äänestä

Kommentoi aloitusta


unohda backtick ! kirjoitti:

1. Löysin lopulta itse ratkaisun tähän.

Mutta nettisivulla on silti harhaanjohtavia ohjeita tästä, miksi ?

Esimerkki: haluaisin batch -tiedoston (= bash -script), joka toimisi kuten truename MS-DOSissa.

esimerkiksi näin:

truename file1.txt

haluttu komennon tuloste:

/home/username/file1.txt

--------------------- Ratkaisu: truename ----------------------
#!/bin/bash
hak=$(pwd)
echo "$hak$1"
---------------------- Ratkaisu loppuu --------------------------

Ratkaisuun tarvittavat tiedot löysin täältä:

http://www.cyberciti.biz/faq/unix-linux-bsd-appleosx-bash-assign-variable-command-output/

Mutta sielläkin tuli ENSIN vastaan harhaanjohtava ohje:

virheellinen esimerkki:

now=`date`

toimiva esimerkki:

now=$(date)

Lopuksi:

chmod 544 truename

------------

Tällä kertaa halusin tarkastella netistä löytyvää .doc -tiedostoa (MSWORD, mutta tehty liian uudella versiolla verrattuna käytössäni olevaan wordpad.ex:en windowsissa, joten haluan avata tämän esim. openofficella linuxissa sen sijasta).

Linkki dokumenttiin:

http://tinyurl.com/scancodedoc

jos haet wget:llä, niin seuraavaksi:

mv scancodedoc scancode.doc

Jos haet selaimella, ehkä haluat:

http://preview.tinyurl.com/scancodedoc

Anonyymi
5000

Ilmoita asiaton sisältö

  • Sisältää materiaalia, joka on loukkaavaa, herjaavaa, rasistista, uhkailevaa tai ahdistelevaa.

  • Materiaali sisältää nimiä, yhteystietoja tai muita henkilökohtaisia tietoja. Julkisuuden henkilöistä, julkisissa viroissa toimivista ihmisistä sekä yritysten vastuuhenkilöistä saa keskustella työhön liittyen. Myös yksityiselämään liittyvistä asioista voi keskustella siltä osin, kuin niistä on julkisesti kerrottu.

  • Sisältää lapsille haitallista tai heiltä kiellettyä materiaalia. Seksuaalinen sisältö on sallittua aiheeseen tarkoitetuilla palstoilla, joiden ikäraja on 18 vuotta.

  • Lainvastaista sisältöä voi olla mm. yksityiselämää loukkaavan tiedon levitys, kiihottaminen kansanryhmää vastaan, laiton uhkaaminen, alaikäisiin liittyvä seksuaalinen sisältö/grooming, petokset, identiteettivarkaudet, kunnianloukkaukset ja tekijänoikeusrikkomukset.

  • Sisältö ei liity palstan tai keskusteluketjun aiheeseen.

  • Viesti ei ole suomea tai ruotsia (pl. International Forums), se sisältää mainontaa, se sisältää tekijänoikeuksin suojattua materiaalia, se on massapostitus tai jokin muu syy.

Jaa keskustelu