#!/bin/sh
infile=${1--}
cat "$infile"
Ou seja, defina a variável infile
com o nome do primeiro argumento, mas se isso não estiver disponível, defina-o como -
. cat
com -
como nome do arquivo de entrada lerá da entrada padrão (ou seja, de um canal ou redirecionamento).
Mais curto:
#!/bin/sh
cat -- "${1--}"
ou, como Stéphane aponta,
cat -- "$@"
que também permite que você forneça vários nomes de arquivos na linha de comando.
Mais curto ainda:
alias PipeTester=cat
O que você está fazendo é mais ou menos uma reimplementação de cat
. Seu script PipeTester
pode, de fato, ser substituído por cat
e o acima faz isso por meio de um alias.