Qualquer número de argumentos ao fazer o loop através da matriz de strings?


0

Atualmente estou trabalhando em fazer um script básico de Linux, de modo que ele leva qualquer número de argumentos e chama um script separado para imprimir o terceiro caractere de cada argumento em linhas separadas.

Eu fiz o roteiro para pegar o terceiro personagem, vamos chamá-lo "char3":

threeString=$1
echo ${threeString:2:1}

No entanto, para o script que chama char3 Não tenho certeza de como posso fazê-lo aceitar qualquer número de argumentos e percorrer cada um deles individualmente. Eu tentei apenas fazer em uma matriz, mas eu não sei como chamar o char3 script em vez de apenas codificá-lo em um novo script inteiramente.

Esta foi minha tentativa:

declare -a stringArr={ "$*" }

for i in "${stringArr[@]}"
do
    ./char3 i
done

Por que você está usando o novo script para fazer este trabalho? Awk já pode imprimir o terceiro caractere.
makgun

Por que você está usando o novo script para fazer este trabalho? Awk já pode imprimir o terceiro caractere. `awk '{print substr ($ 0,1,1)}' arquivo` a sintaxe diz que você quer obter o 3o char em $ 0. Em $ 0, pegue primeiro caractere e depois siga 1 caractere. $0,2,4 significa que em $ 0 obter o segundo char e depois seguir 4 chars. Por ex; echo helloman | awk '{print substr($0,2,4)}' e a saída é ello (a resposta de nims @stackoverflow)
makgun
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.