io vorrei usare commenti multilinea sotto lo script di shell. Sotto C/C++ posso usare il seguente formato: /* il mio codice c commento # 2 bla foo bar …. */
Come inserisco un commento su più righe sotto uno script di shell? Puoi dire al metodo per impostare i commenti dello script della shell multilinea? Come si commentano più righe nello script della shell?
In bash shell, possiamo commentare più righe usando vari metodi. Vediamo come inserire commenti su più righe nello script di shell in esecuzione su sistemi Linux o Unix-like.
Dettagli tutorial
Livello di difficoltà
Facile
Privilegi di root
No
Requisiti
Nessuno
Est. momento della lettura
2 minuti
Commenti di script di shell multilinea vs. commento a riga singola
Per impostazione predefinita, lo script della shell può essere commentato come prefisso # personaggio, ad esempio: # my comment goes here
Script di shell Bash Inserisci la sintassi del commento su più righe
Per i commenti su più righe utilizzare la seguente sintassi:
#!/usr/bin/env bash# my comment 1# my comment 2# my comment N
Commento multilinea nello script di shell utilizzando il DOCUMENTO HERE
Tuttavia, puoi utilizzare la funzione HERE DOCUMENT come segue:
Questo tipo di reindirizzamento dice alla shell di leggere l’input dalla sorgente corrente (HERE) finché non viene visualizzata una riga contenente solo la parola (HERE). La parola HERE non è soggetta a nome di variabile, espansione di parametro, espansione aritmetica, espansione di percorso o sostituzione di comando. Tutte le righe lette fino a quel punto vengono quindi utilizzate come input standard per un comando. I file elaborati in questo modo sono comunemente chiamati qui documenti. Se non si desidera il nome della variabile, l’espansione del parametro, l’espansione aritmetica, l’espansione del percorso o la citazione di sostituzione del comando QUI (COMMENTI) in una singola virgoletta:
<<'COMMENTS'
text1
text2
testN
$varName
COMMENTS
Esempio di blocco di commenti Bash
È importante inserire EOF tra virgolette (‘EOF‘) per evitare l’esecuzione e la formulazione di comandi. Ecco i commenti di blocco in un esempio di script di shell:
#!/usr/bin/env bashecho"*** Before comment block ***"
: <<'EOF'
CODE block starts
CODE block ends here
EOFecho"*** After comments block ***"
Scrivere commenti su più righe negli script Bash
Commenti allo script di shell multilinea
Un’altra opzione come sottolineato da Ikram nella sezione commenti qui sotto:
#!/bin/bashfoo=bar
: '
This is a test comment
Author foo bar
Released under GNU
'echo"Init..."# rest of script
Si prega di notare che il : è un comando integrato nella shell. Dalla pagina man di bash(1):
: [arguments]
Nessun effetto; il comando non fa altro che espandere gli argomenti ed eseguendo eventuali reindirizzamenti specificati. Un codice di uscita zero è restituito.
Quindi la sintassi è:
Solo guide per i sostenitori di Patreon ????
Nessuna pubblicità e tracciamento
Guide approfondite per sviluppatori e amministratori di sistema su Opensourceflare✨
Unisciti al mio Patreon per supportare i creatori di contenuti indipendenti e iniziare a leggere le ultime guide:
Aderire Patreon ?
Comando null utilizzato nello script della shell per inserire più commenti. Il ‘:‘ non ha effetto. In altre parole, il comando non fa nulla ed esce sempre con codice di successo.
Esempi
#!/bin/bash## example about calling this stackscript# Multi-line comment<<COMMENT1
_BOX="linode-nixcraft-03"
_BOX_VLAN="172.0.0.100/24"
linode-cli linodes create
--type g6-standard-2
--image linode/ubuntu20.04
--region us-southeast
--root_pass 'ROOT_PASS_HERE'
--authorized_keys 'ssh-ed25519 SSH_PUB_KEY_HERE vivek@nixcraft'
--booted true
--backups_enabled true
--private_ip true
--interfaces.label ""
--interfaces.purpose public
--interfaces.ipam_address ""
--interfaces.label vlan003
--interfaces.ipam_address "${_BOX_VLAN}"
--interfaces.purpose vlan
--stackscript_id 874407
--stackscript_data "{"_BOX_NAME": "${_BOX}"}"
--label "${_BOX}"
COMMENT1# Main script starts belowexec3>&14>&2trap'exec 2>&4 1>&3'0123exec1>/root/StackScript.log 2>&1## SET ME for each server using the cli but some values are static ##_hostname=""# get from the cli_admin_pub_in="eth0"_admin_vlan_in="eth1"_admin_vlan_in_cidr="172.0.0.0/24"_linode_nb_cidr="192.168.255.0/24"_my_admin_pub_ip="$(hostname -I | awk '{ print $1}')"_my_admin_pvt_ip="$(hostname -I | awk '{ print $2}')"_my_admin_vlan_ip="$(hostname -I | awk '{ print $3}')"# rest of the script below# ....# ..# ......
Conclusione
Sarebbe meglio se documentassi il tuo script e scrivessi commenti considerati una best practice. Altri amministratori di sistema e sviluppatori potrebbero utilizzare i commenti per comprendere i tuoi script. Come spiegato in precedenza, qualsiasi cosa viene scritta dopo # e fino alla fine della riga non sono altro che commenti.
Hai imparato a conoscere le possibilità di commenti di script di shell su più righe. Tuttavia, le shell non offrono una sintassi di commento su più righe. Quindi, abbiamo imparato e usato varie tecniche come here-documents per fare “commenti” multilinea sotto Linux o sistemi simili a Unix.
ANNUNCIO
Ti e piaciuto questo articolo?
Supporta il mio lavoro, facendo una donazione!
Questo sito utilizza i cookie per migliorare servizi ed esperienza dei lettori. Se decidi di continuare la navigazione senza blocchi premi su Accetto, oppure continua tranquillamente la navigazione, nessun dato sulla tua navigazione verrà raccolto.
Quando visiti un sito Web, esso può archiviare o recuperare informazioni sul tuo browser, principalmente sotto forma di cookies. Controlla qui i tuoi servizi di cookie personali.