A coisa sensata a fazer seria
ls /bin
ls $_
ou
set ls /bin
$*
$*
ou
c='ls /bin'
$c
$c
Advertências: vale lembrar que cada uma delas vem com algumas armadilhas. A solução $ _ captura apenas o último argumento: assim, ls foo bar
deixará $ _ contendo apenas bar
. Aquele usando set
irá substituir os argumentos ( $1
, $2
, etc). E tudo isso como está escrito funcionará, mas quando generalizado para comandos mais complexos (onde a fuga e o espaço em branco importam), você poderá ter algumas dificuldades. Por exemplo: ls 'foo bar'
(onde o argumento de caminho único foo bar
contém dois ou mais espaços, ou qualquer outro caractere de espaço em branco) não se comportará corretamente em nenhum desses exemplos. Escape apropriado (possivelmente combinado com um comando eval
), ou usando "$@"
em vez de $*
, pode ser necessário para contornar esses casos.