Um problema que você está tendo com seu script está nesta linha:
line= dcmdump +P 0040,0254 0001.dcm
Em vez de atribuir a saída de dcmdump a line , ele está executando o comando dcmdump com uma variável de ambiente chamada line set to '' . Você pode ler mais sobre isso aqui .
Então, o que você está realmente vendo é a saída de dcmdump sendo executada pelo seu script, não a saída de $line , já que $line não está sendo atribuído a nada.
Para capturar a saída de um programa, use a sintaxe
line=$(dcmdump +P 0040,0254 0001.dcm)
(Observe também que não há espaço antes ou depois do sinal = ser seguro.)
$() executa o código dentro dos parênteses em um subshell e, em seguida, "substitui" a si mesmo por aquela saída desse código.
Você provavelmente quer que 0001.dcm dentro do comando dcmdump seja $file , mas não estou familiarizado com isso, então deixarei isso para você.