Não está funcionando por alguns motivos:
Para executar um script como um executável, a primeira linha deve informar ao shell qual programa (ou seja, qual shell) deve executar o script, portanto, você deve iniciar:
#!/bin/bash
ou qualquer shell que você queira (mas veja a nota abaixo).
Em segundo lugar, você não pode executar isso no tcsh porque ele usa uma sintaxe diferente. Você não usa export
variáveis de ambiente, você usa setenv
sem sinal de igual. Além disso, $ (comando) não significa nada para o tcsh.
Outro problema é que, se você executar esse script a partir de um shell diferente, as variáveis definidas nele não serão levadas de volta quando forem concluídas: quando você executar . ./script.sh
, ele executará o script através do shell em execução no momento. / p>
Sua melhor solução é ter duas versões, uma neste formato e outra que funcione com o tcsh, e colocá-las em seus scripts de inicialização, por exemplo, ~ / .bashrc ou ~ / .tcshrc.