Je suis nouveau à la programmation de bash. J'essaie de comprendre le code suivant.
Je sais seulement que s'il vous plaît, pouvez-vous écrire le flux d'étapes d'exécution de la dernière ligne de code? p> p> $ code> est utilisé pour transmettre les paramètres. p>
4 Réponses :
Essayez d'analyser le code étape par étape en insérant des commandes de sortie
echo $pattern
echo ${#pattern}
echo $((2*${#pattern}))
echo $tck
echo ${pins[$tck]}
# ...
Sans voir ce que vous utilisez comme entrée au script ou au total, il est assez difficile de donner une description précise.
Toutefois: P>
# This is an array and $tck is supposed to represent a "Key"
${pins[$tck]}
# You can list keys with ${pins[@]}
Collez votre code dans shellcheck.net Don ' t Utilisez les deux c'est juste une simple chaîne. P> fonction code> et () code>. Préférez le () code>. P> local code> définit les variables dans la fonction comme étant scopée sur cette fonction. 1 $ code> et telles sont les valeurs des paramètres de position que la fonction reçoit. p> check_data $pattern $((2*${#pattern})) ${pins[$tck]} ${pins[$tdi]} ${pins[$tdo]}
Nous verrons comment le Partie 1 Fort> P> < p> puisque 34 est la longueur de la chaîne La sortie sera 2 car l'indexation du tableau commence à 0 en bash. P> depuis De même, Par conséquent, la ligne finale de votre script est maintenant, p> maintenant la fonction sera appelée avec Paramètres p> Vous devez $ code>, # code> fonctionne, puis répondez à la question. $ {# modèle} code> donnera la longueur de la chaîne que modèle code> est titulaire.
Par conséquent, dans votre exemple ci-dessus p> 0110011101001101101000010111001001 p> $ {goupille [$ TCK]} code> est utilisé pour obtenir la valeur à index tck code> de tableau broches code>. Si la variable n'est pas définie, il sera par défaut à 0. Ici, puisque TCK code> n'est pas défini,
$ {PINS [$ TCK]} CODE> est équivalent à $ {broches [0]} code>. Ainsi, la sortie sera la suivante: p> $ () code> est utilisé pour la substitution de commande à bash. La commande à l'intérieur () code> sera exécutée et que la sortie sera substituée. P> $ ( (2 * $ {# modèle})) code> évalue vers $ (((2 * 34)) code> qui évalue à 68 code> p> TCK code>, TDI code> et TDO code> ne sont pas définis, il sera par défaut à 0.
Par conséquent, p> $ {goupille [$ TCK]} code> évalue vers $ {broches [0]} code> qui évalue à 2 code >, le premier élément du tableau CODE> PINES CODE>. P> {$ {$ TDI]} code> et $ {$ [ TDO]} code> évalue les deux à 2 p> echo code> résultat de check_data code> fonction qui sera substitué comme p> checkdatret = your_result_from_func code> p> p>
Je vois binaire! Si c'est le cas, alors le "&" s signifie "l'opérateur Bitwise et" qui est vrai (1) si et seulement si les deux bits sont vrais (1).