Ho una stringa nel mio script di shell, che è in un formato fisso: '[STATUS REPORT] PROJECT'
. Quando l'utente esegue il mio script di shell, gli verrà chiesto di fornire un valore per 'PROJECT'
.
Vorrei sostituire la parola 'PROJECT'
con l'utente fornire valore. Ad esempio, se l' 'ABCD'
utente ha inserito l'input:
"[RAPPORTO DI STATO] ABCD"
Ho due problemi: 1: Come affrontare personaggi speciali come "&" nel nome di un progetto? Ad esempio:
echo "[STATUS REPORT] PROJECT" | awk '{ gsub(/PROJECT/, "A&A"); print }'
e ottengo il seguente output:
[RAPPORTO DI STATO] APROJECTA
2: La mia attuale istruzione shell è simile alla seguente:
echo "[STATUS REPORT] PROJECT" | awk '{ gsub(/PROJECT/, $ProjectName); print }'
dove $ ProjectName memorizza il nome del progetto fornito dall'utente. Ma questo non sembra funzionare
Come posso farlo funzionare correttamente?
&
è un carattere speciale nelle espressioni regolari" -&
è speciale nella stringa di sostituzione dei comandisub
egsub
.