[LINUX] Gestion des devis en [bash]

Contexte

Je suis un nouvel ingénieur qui vient de commencer à écrire bash. Je code ** "Oh, ici des guillemets simples? Double? Est-il nécessaire de l'entourer en premier lieu? Eh bien, peu importe si ça bouge ..." ** Je suis toujours inquiet à ce sujet, alors j'ai décidé de l'organiser à nouveau.

Conclusion

OK avec la reconnaissance suivante. Les détails seront expliqués individuellement plus tard. コメント 2020-08-17 221526.png

Simple citation''

Si vous mettez une chaîne entre guillemets simples, chaque caractère de la chaîne perd sa signification spéciale et est interprété comme la signification littérale.

# $HOME est une variable shell spéciale qui définit le répertoire personnel de l'utilisateur exécutant le shell.

$ echo '$HOME' #Entourer de guillemets simples
$HOME #Tel quel$Sortie comme HOME

$ echo "$HOME" #Mettre entre guillemets
/c/Users/guest.name #S'étend à la valeur d'une variable shell

$ echo '*' #Entourer de guillemets simples
* #Tel quel*Est sortie

$ echo * #Ne citez rien
bin doc src #Développé au nom de fichier dans le répertoire actuel

Double citation ""

Si vous mettez une chaîne entre guillemets doubles, la plupart des caractères perdent leur signification particulière, tout comme les guillemets simples. Cependant, les significations spéciales de \ $ et de `restent, donc l'expansion des paramètres et la substitution de commandes sont effectuées. ** Il semble préférable de mettre "\ $ variables" et "\ $ (commande de remplacement)" entre guillemets pour éviter tout comportement inattendu. ** **

#Expansion des paramètres
$ var='*** hello  world ***' #Avec une série d'espaces*Chaîne contenant

$ echo "$var" #Mettre entre guillemets
*** hello  world *** #S'affiche correctement

$ echo $var #Ne pas mettre entre guillemets
bin doc src hello world bin doc src #L'espace est interprété comme un délimiteur et le nom de fichier du répertoire courant est développé avant et après.

#Remplacement de la commande
$ user='$(whoami)' #Entourer de guillemets simples
$ echo "$user"
$(whoami) #Interprété comme une simple chaîne

$ user="$(whoami)" #Mettre entre guillemets
$ echo "$user"
guest.name #Le résultat de la commande whoami est attribué

barre oblique inverse \

Si vous placez une barre oblique inverse devant un caractère, le caractère immédiatement après le \ perd sa signification spéciale et est interprété comme le sens littéral.

$ echo \$HOME  # $Mettez une barre oblique arrière devant
$HOME #Tel quel$Sortie comme HOME

$ echo $HOME #Je dois ajouter une barre oblique inverse
/c/Users/guest.name #S'étend à la valeur d'une variable shell

$ echo \*  # *Mettre une barre oblique arrière devant
*  #Tel quel*Est sortie

$ echo *  #Je dois ajouter une barre oblique inverse
bin doc src  #Développé au nom de fichier dans le répertoire actuel

Référence: Takenori Yamamori "[Revised 3rd Edition] Shell Script Basic Reference ── #! / Bin / sh can do this" Technical Review Company (2018/11/14)

Recommended Posts

Gestion des devis en [bash]
Gestion des fichiers JSON en Python
Gestion des codes de caractères des fichiers en IronPython
[Bash / linux] Notes en cas de problème
Bash dans Jupyter
Manipulation de json en python
Gestion des erreurs dans PythonBox
Comment gérer l'hexadécimal en Python3
Gestion des chemins absolus de os.path.join
[Mémo personnel] Achèvement automatique du bash
Partiel en cas de problème
Gestion des matrices clairsemées dans Scipy
Liste des nœuds dans les diagrammes
Jugement d'équivalence d'objet en Python
python> Gestion des tableaux 2D
Manipulation de python sur mac
Comparaison de la gestion des trames de données en Python (pandas), R, Pig
Expansion des paramètres de variable Bash
Implémentation du tri rapide en Python
Gestion de l'espace colorimétrique HSV inférieur et supérieur dans OpenCV
Traitement des URL relatives en python
Configurez facilement Firewalld en multi-zone
Manipulation des pixels d'image en Python
Gestion des attributs épars dans une structure arborescente (Python)
Jugement de vacances, y compris les vacances avec bash
Erreur divisée par 0 Gestion de ZeroDivisionError
L'histoire de la participation à AtCoder
Implémentation de la fonction de connexion dans Django
Diviser timedelta dans la série Python 2.7
Caractéristiques de pd.NA dans Pandas 1.0.0 (RC0)
Gérer les dates dans les commandes bash Linux
Échappement automatique des paramètres MySQL en python
Installez GoLang dans goenv de anyenv
Implémentation du jeu de vie en Python
Affichage de la forme d'onde audio en Python
Résumé des différentes opérations dans Tensorflow
Modèle de chaîne de responsabilité en Java
L'histoire du "trou" dans le fichier
Gestion des fuseaux horaires en Python (datetime, pytz)
La loi des nombres en python
Implémentation du tri original en Python
Brouillage réversible d'entiers en Python
Traitement des données 2 Analyse de divers formats de données
Afficher le chemin complet (chemin absolu) d'un fichier dans un répertoire sous Linux Bash
Python: prétraitement en machine learning: gestion des données manquantes / aberrantes / déséquilibrées