Hali,
Tudna valaki segiteni hogy ha van egy parancs:
"go server" azt hogy lehetne ugy elintezni hogy ugy vegye be hogy "ssh %server" ??
% fontos hogy a file elott legyen, kulonben nem megy.
aliasokkal probalkoztam de nem jott ossze.
- 791 megtekintés
Hozzászólások
joco@joco:~$ function go { echo ssh %$1; }
joco@joco:~$ go server
ssh %server
Echo-t vedd ki. Amúgy a shellhez hülye vagyok, nekem ez így bash-ben megy, de gondolom 100-féle shellben 200-féle szintaxis van függvény írására.
- A hozzászóláshoz be kell jelentkezni
Tokeletes, Koszi :D
- A hozzászóláshoz be kell jelentkezni
Idézet a bash man-jából (csak hogy értsd, miért nem ment) :
"There is no mechanism for using arguments in the replacement text. If arguments are needed, a shell function should be used (see FUNCTIONS below)."
Ugyanis az alias egy teljesen egyszerű szöveges cserét hajt végre, ahol a parancs első szavát cseréli ki az aliasként definiált értékre. E miatt aztán ez a trivialitás nem jó:
$ alias go='echo ssh \%'
$ go server
ssh % server
$
Mint látható, a parancsot az első paramétertől elválasztó szóköz megmarad a csere után is.
Ui: mondjuk ha csh-t használnál, abban ugyan nincs shell-függvény, de abban a shellben az alias-ban van lehetőség a paraméterek helyettesítésére az un. "history substitution" segítségével:
csh% alias go 'echo ssh \%!^'
csh% go server
ssh %server
csh%
(A !^ azt jelenti, hogy a legutolsó parancs mindenestül, kivéve a parancsszót.)
=====
tl;dr
Egy-két mondatban leírnátok, hogy lehet ellopni egy bitcoin-t?
- A hozzászóláshoz be kell jelentkezni
Koszi,
jahh az alias nem jatszott.
csh, meg nem tul gyakran hasznalok :D
- A hozzászóláshoz be kell jelentkezni
csh% alias go 'echo ssh \%!^'
Szerintem a felkiáltójelet is escapelni kell (nálam legalábbis csak úgy "veszi be"). Másrészt több szóra már nem megy (go alma körte
), de nyilván ez nem is volt feltétel.
Amúgy köszi, tcsh-t használok, de erről nem tudtam.
- A hozzászóláshoz be kell jelentkezni
Ja igazad van, \! a helyes. Olyan ritkán használok csh-t (aktívan kb. 20 éve utoljára, azóta csak ilyen példákban), hogy minden alkalommal figyelmeztetnem kell magamat, hogy ott még idézőjelen belül is megy a history hivatkozás helyettesítése. (Ami amúgy viszonylag logikus.)
És valóban, ha több paraméter kellene, akkor \!\* lenne a megfelelő hivatkozás az utolsó parancs összes paraméterére (mert ugye a !^ az csak a paraméterek "eleje").
=====
tl;dr
Egy-két mondatban leírnátok, hogy lehet ellopni egy bitcoin-t?
- A hozzászóláshoz be kell jelentkezni