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).