-
Eu uso o vim para escrever scripts de shell.
-
${TEMPDIR}será expandido para o valor da variável denominada TEMPDIR.${TEMPDIR:=/tmp}fará o mesmo, mas se estiver vazio (ou não definido), o valor / tmp será atribuído a TEMPDIR e também expandido.Ter
${TEMPDIR:=/tmp}sozinho em uma linha fará com que seja alterado para, por exemplo,/tmpque tentará executar/tmpcomo um comando (o que obviamente falhará, já que você não pode executar um diretório). É por isso que o comando:(null) é usado. O comando null ignora todas as entradas, todos os argumentos e não faz absolutamente nada. Executehelp :para ver a descrição desse comando interno.Veja link Para as várias coisas que você pode fazer com a Expansão de Parâmetros.
-
[[ "$line2" > "$Line1" ]]retornará verdadeiro se a linha2 classificar após a linha1 (como strcmp em C).[(comando "test") e comando [[(new test)] são usados para avaliar expressões. [[funciona apenas em Bash, Zsh e o shell Korn, e é mais poderoso; [e teste estão disponíveis em shells POSIX.
Consulte o link para obter a diferença entre o comando
[e a palavra-chave[[. -
?é um parâmetro especial que detém o status de saída do último comando executado.$?expande o valor desse parâmetro.
Em uma nota lateral, se esse for um exemplo do seu livro, eu diria que é uma fonte ruim para aprender bash. Recomendo a leitura do link que também ensina boas práticas.