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.
—
makgun
$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)