Estou ocupado escrevendo scripts shell (usando o Bash), onde preciso preencher alguma variável do resultado retornado de outro comando.
Então, eu estou usando uma sintaxe como esta:
VAR=`command 2>/dev/null`
Mas, ao procurar informações sobre shells de script, descobri frequentemente que o acima pode ser alcançado usando a seguinte sintaxe também:
VAR=$(command 2>/dev/null)
Ambos estão trabalhando para mim (recebi o resultado esperado em ambos os casos) e, portanto, estou me perguntando se ainda posso usar os dois formulários de forma intercambiável ou se tenho que me ater a um formulário para garantir a conformidade com a evolução futura do Concha ?
command-line
Justin
fonte
fonte
Respostas:
Use dólar. Os backticks são semi-obsoletos , porque são mais complicados de usar (consulte o link), e não há vantagens para eles, a menos que você esteja praticando golfe de código e absolutamente precise salvar um único caractere. Eles provavelmente não serão removidos das conchas populares tão cedo, então você estará seguro de usar por enquanto.
fonte
Fique com a notação de cifrão
$()
sempre que puder. Os backticks ficam complicados / confusos quando você começa a fazer citações aninhadas. Ex:Substituir os backticks por
$()
produz a mesma saída e é mais fácil de ler (menos aspas de ângulos de variação para discernir):Isso e cada aspas (aspas simples, aspas duplas, backtick) significa algo diferente no shell, portanto, usar $ pode ajudar a remover um nível de complexidade. E o desenvolvedor que o segue agradece, pois ele / ela terá mais facilidade para descobrir o que você fez.
fonte