$1
é um parâmetro posicional ; ele será expandido para o primeiro argumento passado para o script. Há similarmente $2
, $3
... $9
, ${10}
, ${11}
, ...
O parâmetro especial "$@"
será expandido para uma lista de todos os parâmetros posicionais.
Então você pode fazer o seguinte:
sed -i 's/[ \t]*$//' "$@"
Se você quiser passar um glob / pattern para este script (ou para qualquer programa), ele deve ter um escape ou ser citado quando você chama o script - esta é uma função do shell; Ele expandirá todos os padrões antes que seu script o veja. Este caso não deve precisar disso - o shell pode expandir o padrão, e os resultados dessa expansão são passados para sed
.