Vediamo come possiamo fare in modo che il nostro script shell causino questo errore e come risolverlo. Inizia con il nuovo file bash creato con la query "touch" di Ubuntu e aprilo all'interno dell'editor "GNU Nano".
$ touch sub.shEsempio 01
Il primo motivo del cattivo errore di sostituzione è l'uso della sintassi del codice errata. Diamo un'occhiata a questo. A partire dal primo codice bash, abbiamo aggiunto il supporto bash nella prima riga dello script bash, i.e., "##!/bin/bash ". Dopo questo, abbiamo inizializzato una semplice variabile "V" con il comando Elenco di Ubuntu come valore. Questo valore è stato inserito all'interno delle parentesi ricci e con il segno "$" per considerarlo come un comando shell. Dopo questo, l'istruzione Echo è qui per visualizzare semplicemente il valore della variabile "V" sulla shell. Il nostro codice è completo e pronto per l'uso.
Abbiamo salvato il codice bash e siamo tornati al terminale dopo aver usato CTRL+S e Ctrl+X, rispettivamente. Abbiamo eseguito questo file di script bash appena creato con l'istruzione "bash" e abbiamo ottenuto la "cattiva sostituzione" qui sul nostro schermo. Questo errore si è verificato a causa dell'uso di parentesi ricci “” attorno all'istruzione dell'elenco nel codice.
$ Bash Sub.shProviamo ora ad aggiornare il nostro codice per risolvere questo errore. Quindi, abbiamo rimosso le parentesi ricci dalla seconda riga di codice e lo abbiamo sostituito con le semplici parentesi "()" come presentato di seguito. Nel complesso, il codice rimarrà lo stesso di non vi è alcun problema con il codice. Salva questo codice ora.
Dopo essere uscito dall'editor GNU Nano, eseguiremo il file bash “Sub.SH "Codice aggiornato con l'uso dell'istruzione" bash "come presentato di seguito. Si scopre che il cattivo errore di sostituzione è stato rimosso dopo l'aggiornamento del codice e le istruzioni dell'elenco inserite all'interno della variabile "V" sono state eseguite correttamente. Il comando Elenco ha visualizzato tutti i contenuti della directory home attuale, i.e., File e cartelle, nella nostra schermata Shell.
$ Bash Sub.shEsempio 02
Un altro motivo per il verificarsi di cattive errori di sostituzione in Bash è l'uso di spazi non necessari durante l'esecuzione di alcune variabili. Quindi, abbiamo aggiunto il supporto bash e inizializzato una variabile "V" con l'istruzione di elenco come un valore detenuto da semplici parentesi e un segno in dollari "$ $."Dopo questo, abbiamo usato l'istruzione" Echo "per visualizzare il valore variabile" V ". Ma abbiamo aggiunto la variabile "V" nell'istruzione "eco" insieme allo "spazio" tra le parentesi.
Dopo aver salvato questo codice, abbiamo eseguito questo file bash con la query "bash" nel nostro terminale, come presentato di seguito. Restituisce la sostituzione di Bash al 3Rd riga della sceneggiatura.
$ Bash Sub.shPer rimuovere l'errore dal nostro codice, dobbiamo aggiornare il nostro codice. Quindi, abbiamo di nuovo aperto il file e rimosso lo spazio extra all'interno delle staffe ricci dell'istruzione "Echo" come di seguito.
Ora che il codice è stato aggiornato e lo spazio bianco viene rimosso, dobbiamo eseguire questo file con l'istruzione bash presentata di seguito. Dopo aver eseguito il file, l'errore di sostituzione negativo è stato rimosso e l'istruzione dell'elenco specificata nella variabile "V" è stata eseguita correttamente sul terminale dopo che l'istruzione "eco" è stata eseguita nello script bash. L'elenco degli attuali file e cartelle della directory home viene visualizzato nella nostra schermata di shell in basso.
$ Bash Sub.shEsempio 03
Questo errore può verificarsi anche a causa dell'utilizzo di ripetuti caratteri indesiderati nel codice. Quindi, abbiamo provato un codice aggiornato per ottenere questo errore sulla shell. Per questo, dobbiamo usare il carattere "$" due volte nell'istruzione "eco" per specificare la variabile "V" per l'esecuzione che è la sintassi sbagliata per farlo. Questa variabile "V" contiene la semplice istruzione dell'elenco come valore. Dato che abbiamo usato il doppio cartello "$" dentro e fuori dalle staffe ricci nell'istruzione "Echo", ci porterà a un cattivo errore di sostituzione durante l'esecuzione.
Dopo aver eseguito il codice con istruzioni bash, abbiamo riscontrato un brutto errore di sostituzione alla riga 3 dello script bash sulla nostra schermata Shell.
$ Bash Sub.shRimuoviamo il cattivo errore di sostituzione dall'esecuzione aggiornando la riga 3 di un codice. Abbiamo rimosso il cartello interiore "$" all'interno delle staffe ricci dall'istruzione "Echo".
Dopo aver rimosso il cartello "$", abbiamo eseguito nuovamente il codice sulla shell con il comando "bash". L'errore è stato rimosso e è stato visualizzato l'elenco di file e cartelle.
$ Bash Sub.shEsempio 04
Facciamo il nostro ultimo ma non ultimo esempio di questo articolo. Abbiamo usato due variabili, x e y, contenenti la posizione della directory come valore. Nell'istruzione "Echo" di questo codice, abbiamo usato entrambe le variabili da stampare e separati dal segno "/". Ogni variabile contiene un cartello in dollari con esso, mentre un segno singolo in dollari viene utilizzato anche al di fuori delle staffe ricci.
L'uso di parentesi ricci e segni di dollari ha causato un cattivo errore di sostituzione.
$ Bash Sub.shQuindi, abbiamo rimosso le staffe ricci e il segno del dollaro esterno, come mostrato di seguito.
Questo valore temporale di entrambe le variabili è stato visualizzato.
$ Bash Sub.shConclusione
Questo riguarda l'illustrazione della creazione di un codice bash sugli errori che causano il cattivo errore di sostituzione durante l'esecuzione. Abbiamo discusso delle cose da fare e non per evitare l'errore eseguendo diversi esempi di bash.