bash-variabiles problem

Sekcia: Konfigurácia 30.01.2008 | 17:38
Avatar slazer   Používateľ
Mám tento problém (v shelli aj v skripte):
export pr='whoami|wall'       
su -c '$pr' martin 

Problem je ze po substitucii to vyzera asi tako:
su -c 'whoami|wal' martin

a operator rury zapricinuje zlyhanie.
Prikaz by mal spustit prikaz WHOAMI a presmerovat ho na WALL ktore ho vypise na terminal. To vsetko pod uzivatelom martin. Dakujem za akukolvek pomoc.
    • Re: bash-variabiles problem 30.01.2008 | 18:46
      lieko   Návštevník
      wall $(whoami)
      • Re: bash-variabiles problem 30.01.2008 | 19:24
        Slazer   Návštevník
        slazer@slazer-desktop:~$ wall $(whoami)
        wall: will not read slazer - use stdin.

        Viem ze tento posup niekedy funguje, ale vacsinou nie.
        • Re: bash-variabiles problem 30.01.2008 | 20:42
          lieko   Návštevník
          vacsinou nie? este som sa nestretol s pripadom ze by nefungoval
          • Re: bash-variabiles problem 30.01.2008 | 22:03
            Slazer   Návštevník
            Prepac, asi som to zle zvyraznil:
            slazer@slazer-desktop:~$ wall $(whoami)
            wall: will not read slazer - use stdin.

            Vraj mam pouzit stdin. To znamena ze nemozem pouzit presmerovanie na wall?
        • Re: bash-variabiles problem 30.01.2008 | 20:49
          lieko   Návštevník
          no kazdopadne je tu este takato moznost

          echo $(whoami) | wall
          • Re: bash-variabiles problem 30.01.2008 | 22:10
            Slazer   Návštevník
            Ono ale prave ten operator rury sposobuje problem, lebo ked sa dosadi na miesto premennej $pr tak je interpretovana ako metaznak. Mozno nemozem pouzit ruru vobec.. Iba ze by existovala nejaka 'escape sekvencia'.
            export pr='whoami|wall'
            su -c '$pr' martin <<<sem sa vlozi $pr a ak je to rura tak mam syntax error
            • Re: bash-variabiles problem 30.01.2008 | 22:53
              lieko   Návštevník
              neviem , nechapem , skus mi povedat co to ma robit

              ma sa ako root vykonat prikaz wall s hlaskou v ktorej bude meno usera ktory to spustil ? preco sa to ma spustat ako root ?
              • Re: bash-variabiles problem 30.01.2008 | 23:02
                Slazer   Návštevník
                Ano, ma to vykonat prikaz wall s hlaskou v ktorej bude meno usera ktory to spustil.
                su -c '$pr' martin           #nema to spustat ako root, ale ako pouzivatel MARTIN
                SU sluzi aj na zmenu pouzivatela a to je presne to co potrebujem. A hned chcem aj vykonat ten prikaz cez parameter SU -c {COMMAND} ale narazam na ten problem so znakom |
                • Re: bash-variabiles problem 30.01.2008 | 23:13
                  lieko   Návštevník
                  [duben@paranoid ~]$ su -c 'echo $(whoami) | wall' duben
                  Password:

                  Broadcast message from duben (Wed Jan 30 22:08:54 2008):

                  duben
                  • Re: bash-variabiles problem 01.02.2008 | 17:41
                    Slazer   Návštevník
                    Ano to funguje, pretoze je tam priamo napisany prikaz, a nieje predany pomocou premennej.
                    Nakoniec som to vyriesil prosto tak ze som nahradil tie apostrofy pri su -c za uvodzovky a pouzil som to
                    echo $(whoami) | wall
                    namiesto
                    whoami|wall
                    .
                    Teda to vyzera asi takto:
                    export prikaz='echo $(whoami) | wall'
                    su -c "$prikaz" uzivatel

                    Dakujem vsetkym za pomoc.
    • Re: bash-variabiles problem 30.01.2008 | 21:32
      WlaSaTy   Návštevník
      ak chces mat vsade vypisy pri kazdom su-cknuti, tak si nastav syslog nech to dava napriklad na /dev/console. inak, password policy tu malo pekny clanok.