Puncte:0

atunci când se utilizează ?! în regex perl, bash îl interpretează ca căutare prin istoricul comenzilor

drapel in
Cas

Problema simpla dar nu o pot rezolva.

Am următoarea regex perl:

ecou...| grep -P "(?i)(v(ersiune)?)\s?(?!0)\d(\.|,)\d{1,}"

Acesta ar trebui să se potrivească cu fiecare șir care descrie o versiune a ceva (de ex. V2,0 sau versiunea 1.2). Dar nu se potrivește când începe versiunea cu V0.... Cu toate acestea, când execut asta, primesc o eroare -bash: !0: evenimentul nu a fost găsit deoarece !<șir> este folosit pentru a căuta prin istoricul comenzilor și pentru a executa cea mai recentă lovitură.

Acest lucru practic rupe regex perl pentru mine. Cum pot evita ca shell-ul să îl interpreteze ca o comandă rapidă?

drapel hr
Oarecum înrudit: [bash: eroare în comanda de export care bash: !st: evenimentul nu a fost găsit](https://askubuntu.com/questions/1130809/bash-error-in-export-command-that-bash-st-event -nu a fost gasit)
Puncte:1
drapel es

Folosiți ghilimele simple, nu ghilimele duble, pentru a vă proteja expresia regulată de shell.

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.