Você está com saudades do sinal -
antes do seu argumento -f
para cut
. Consegui executar seu script e fazer com que ele funcione corretamente depois de fazer essa modificação.
Estou tentando obter a saída dos argumentos da linha de comando na ordem inversa. Mas estou recebendo um erro ao fazer isso.
Este é o código:
#!/bin/bash
str=$@
len=$#
space=" "
echo "No. of arguments = $len"
echo "Entered arguments = $str"
while [ $len -ne 0 ]
do
tmp='echo $str | cut -d " " f $len'
rev=$rev$tmp$space
len='expr $len - 1'
done
echo "Arguments in reverse = $rev"
E quando eu executo o script, recebo este erro:
robin@robin-VirtualBox:~/lx$ ./s1.sh one two three
No. of arguments = 3
Entered arguments = one two three
cut: you must specify a list of bytes, characters, or fields
Try 'cut --help' for more information.
cut: you must specify a list of bytes, characters, or fields
Try 'cut --help' for more information.
cut: you must specify a list of bytes, characters, or fields
Try 'cut --help' for more information.
Arguments in reverse =
Você está com saudades do sinal -
antes do seu argumento -f
para cut
. Consegui executar seu script e fazer com que ele funcione corretamente depois de fazer essa modificação.
Tags command-line bash scripts