Puncte:7

Cum pot face ca un alias shell să funcționeze imediat?

drapel pl

Definirea și utilizarea unui alias în aceeași linie nu pare să funcționeze:

$ alias x=ls; X
x: comanda nu a fost găsită

Cum pot "scapa" X în al doilea apel astfel încât să fie recunoscut ca alias?

Someone avatar
drapel my
Adăugați aliasul în fișierul `.bashrc`, apoi scrieți pur și simplu `source ~/.bashrc` acum alias-ul este permanent
Will avatar
drapel id
Am încercat && și am încercat să pun mai multe aliasuri pe o singură linie (care sunt toate atribuite)… dar indiferent câte ai pune pe linie, nu va executa primul (sau oricare) în aceeași linie - este foarte interesant!
drapel hr
Consultați [Run alias după creare](https://unix.stackexchange.com/a/389974)
bers avatar
drapel pl
@Algnis `sursa ~/.bashrc; x` tot nu va merge.
Puncte:11
drapel us

Nu poți (în modurile obișnuite). Vedea secțiunea manualului Bash despre Aliasuri (sublinierea mea):

Regulile privind definirea și utilizarea pseudonimelor sunt oarecum confuz. Bash citește întotdeauna cel puțin o linie completă de intrare și toate liniile care alcătuiesc o comandă compusă, înainte de a executa oricare dintre comenzi de pe linia respectivă sau comanda compusă. Aliasurile sunt extinse când o comandă este citită, nu când este executată. Prin urmare, un alias definiția care apare pe aceeași linie cu o altă comandă nu o ia efect până când este citită următoarea linie de intrare. Urmează comenzile definiția alias-ului de pe acea linie nu sunt afectate de noul alias. [...] Pentru a fi în siguranță, puneți întotdeauna definițiile de alias pe o linie separată și nu utilizați alias în comenzile compuse.

Puteți rezolva acest lucru forțând o re-parsare folosind eval:

$ alias x=data; eval x
Vineri, 12 noiembrie, 18:20:54 JST 2021
bers avatar
drapel pl
`eval` este ceea ce căutam! (Am încercat `exec`, dar `eval` nu mi-a trecut prin minte până acum.) Mulțumesc!
bac0n avatar
drapel cn
+1 `shopt -s extglob; eval echo '!(fișier)'`

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.