source
é um shell embutido. Seu shell não pode encontrar source
pelo mesmo motivo que não pode encontrar cd
quando você está usando o sudo - não é um comando. Você pode usar o shell embutido type
para verificar isso sozinho.
source
executa o conteúdo de um arquivo que você especifica no seu shell atual . Isso deve ser bom, desde que você não precise de um shell interativo e que seu shell atual seja tclsh. Leia aqui para obter mais informações.
sudo tclsh /opt/test.tcl
funcionará, mas será executado em um shell não interativo.
Se você precisar source
do script por algum motivo, decida se precisa fazer permissões especiais ou não. Se você precisar, você pode su
para root e source
o script de lá.
Além disso, a saída que você obteve para $ whereis source
source: /usr/share/man/man1/source.1.gz
parece ser uma página man
. Então, isso provavelmente não seria muito útil!