Y a-t-il une commande bash qui peut indiquer la taille d'une variable shell
Est-il un moyen de trouver la taille(mémoire utilisée) de la variable shell en ligne de commande, sans l'aide de C ?
source d'informationauteur abc
Vous devez vous connecter pour publier un commentaire.
wc
peux vous dire combien de personnages et d'octets dans une variable, et bash peut vous dire combien d'éléments sont dans un tableau. Si ce que vous cherchez est de savoir comment grand bash structures internes sont pour la tenue d'une variable spécifique, alors je ne crois pas que c'est disponible n'importe où.Cela vous indique le nombre de caractères de la valeur d'une variable scalaire nommé "var":
Cela vous indique le nombre d'éléments dans un tableau appelé "tableau":
Cela vous indique le nombre de caractères dans un élément d'un tableau:
Si vous essayez d'obtenir la taille d'un tableau et vous laissez de côté le
[@]
index, vous obtenez la longueur de l'élément 0:Si vous souhaitez que la durée totale de tous les éléments d'un tableau, vous pouvez parcourir le tableau et les ajouter, vous pouvez utiliser
IFS
et certaines des étapes semblables à celles ci-dessous, ou vous pouvez:Attention en utilisant le nombre d'éléments dans un tableau, l'indice du dernier élément, car Bash prend en charge matrices creuses:
Qui n'est évidemment pas le dernier élément. Pour obtenir le dernier élément:
Note que, dans la prochaine Bash 4.2, vous pouvez le faire
echo ${array[-1]}
pour obtenir le dernier élément. Dans les versions antérieures à la version 4.2, vous obtenez un mauvais indice d'erreur pour les indices.Pour obtenir l'index du dernier élément:
Alors vous pouvez faire:
Pour parcourir un tableau fragmenté:
* Je vous recommande d'éviter
nounset
vous indique la longueur de la chaîne
VAR
Pour une variable scalaire,
${#VAR}
vous donne la longueur en caractères. Dans un unibyte locale, c'est la longueur en octets. La taille en octets est la longueur du nom en octets, plus la longueur de la valeur en octets, plus une constante de frais généraux.Si la variable est exportée, la taille est à peu près le double.
Pour une variable de tableau, vous devez additionner les longueurs (de nouveau, en octets) des éléments, et d'ajouter un surplus constant par élément, à une constante près de surcharge pour le tableau.
Voici un peu testé la fonction qui calcule la taille occupée par une variable. Les tableaux et les exportations sont pris en compte, mais pas les variables en lecture seule comme
$RANDOM
. Les tailles ont été observés sur le bash 4.2, les différentes versions peuvent avoir différents frais généraux. Vous devrez peut-être ajuster les constantes en fonction de votre système de types etmalloc
mise en œuvre.