Puncte:0

First argument should convert to a variable and execute

drapel cn

I have declared arg="echo demo"

When we execute the command my_command arg, then arg should be converted to $arg and should be executed like

my_command () {
    $arg
}

How do I call $1 as a variable?

Liso avatar
drapel sd
Nu este ceea ce ați declarat `arg="echo demo"` este o variabilă?
tripleee avatar
drapel nz
Nu există nicio modalitate ca funcția dvs. să funcționeze corect cu șiruri ghilimele. Atribuirea unei comenzi unui șir este probabil un lucru greșit pe care doriți să îl faceți oricum. Probabil vezi https://mywiki.wooledge.org/BashFAQ/050
Puncte:2
drapel us

The eval Shell încorporat face ceea ce doriți:

$ ajutor eval
eval: eval [arg ...]
    Executați argumente ca o comandă shell.

    Combinați ARG-urile într-un singur șir, utilizați rezultatul ca intrare în shell,
    și executați comenzile rezultate.

Deci, funcția ta ar putea arăta astfel:

comanda_mea() {
    eval $1
}

În loc de $1 ai putea pune si tu $* și comanda_mea va lua un număr arbitrar de argumente.

Rețineți că până atunci comanda_mea este puțin mai puțin decât un alias pentru eval, așa că ai putea la fel de bine să faci:

alias my_command=eval

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.