-
A principal diferença é que, ao ler do terminal, o shell exibe prompts. Caso contrário, não há diferença
$ echo ls > script $ bash script script $ bash -c ls script $ ls scriptO shell sabe se ele está sendo executado de forma interativa, e alguns comandos podem se comportar de maneira diferente com base nisso também.
-
Sim, é uma coisa comum. argumentos para uma string preenchem seus parâmetros posicionais. Pesquise por
$@e$1,$2etc. emman bash.Veja ARGUMENTOS, FUNÇÕES e ALIASES em
man bash. Em resumo, quando você executacommand1 arg1 arg2, o bash primeiro tenta expandir o aliascommand1e executar o resultado, ou executar uma funçãocommand1, e se mesmo isso não for possível, ele tenta encontrar o comando em seu$PATH.