shell-cut: você deve especificar uma lista de bytes, caracteres ou campos

4

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 =    
    
por Robin 28.04.2014 / 03:29

1 resposta

3

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.

    
por jkt123 28.04.2014 / 03:31