um substituto de comando

1

Eu não vou mentir. Isto é para uma tarefa. Estou preso e é uma espécie de frustrante, então eu vim aqui como meu último recurso, por favor, me ajude.

Então, eu preciso fazer um script para encontrar e imprimir, se o caminho for relativo ou absoluto. Estou preso na última parte, onde o professor quer que eu faça um substituto de linha de comando, que não tenho idéia de como fazer. Isso é o que eu tenho até agora.

if [ "$#" -ne 1 ]; then
    echo 1>&2 "$0: please insert one valid file name;found $# ($*) "
    echo 1>&2 "Usage: $0 [Filename..]"
    exit 2
fi

if [ -z "$1" ] ; then
        echo 1>&2 "$0: file name cannot be empty; found $# ($*) "
        echo 1>&2 "Usage: $0 [filename...] "
        exit 2
fi

if [ ! -L "$1" ] ; then
        echo 1>&2 "$0: The pathname '$1' is not a symlink"
        echo 1>&2 "Usage: '$0' [symlink] "
        exit 2
fi

a=ls "$1" | awk '{ print $NF }'

if [ -z "$a" ] ; then
        echo 1>&2 "$0: Pathname is empty "
        exit 3
fi


    type=$(a)
    case "$b" in
    /* )    type='an Absolute Pathname' ;;
    * )     type='a Relative Pathname in the current directory' ;;  # the "default" match
    echo "pathname'$a' is $type"

    esac

Esta é a captura de tela do que ele deseja que façamos.

faça perguntas se a pergunta não estiver clara o suficiente. Obrigado

    
por Saja Peiris 03.12.2016 / 21:10

1 resposta

1

O script está longe de estar pronto, mas você está no caminho certo agora.

if [ "$#" -ne 1 ]; then
    echo 1>&2 "$0: please insert one valid file name;found $# ($*) "
    echo 1>&2 "Usage: $0 [Filename..]"
    exit 2
fi

if [ -z "$1" ] ; then
        echo 1>&2 "$0: file name cannot be empty; found $# ($*) "
        echo 1>&2 "Usage: $0 [filename...] "
        exit 2
fi

if [ ! -L "$1" ] ; then
        echo 1>&2 "$0: The pathname '$1' is not a symlink"
        echo 1>&2 "Usage: '$0' [symlink] "
        exit 2
fi

a=$(ls -l "$1" | awk '{ print $NF }')

if [ -z "$a" ] ; then
        echo 1>&2 "$0: A Really Good Error Message."
        exit 3
fi

#    type=$a
    case "$a" in
    /*)    type='an Absolute Pathname' ;;
    *)     type='a Relative Pathname in the current directory' ;;  # the "default" match
    esac
    echo "pathname'$a' is $type"
    
por 03.12.2016 / 21:49