Não use os.system() , ele está obsoleto em favor de subprocess module.
No seu caso, você pode usar o módulo subprocess diretamente e é melhor não usar o parâmetro shell=True , pois isso não é seguro para executar comandos diretamente no shell. Todas as funcionalidades que você precisa aqui, como pipe, podem ser emuladas pelo módulo subprocess .
Vamos pegar este exemplo:
import subprocess
var = 'foobar'
first = subprocess.Popen(['/bin/echo', var], stdout=subprocess.PIPE)
second = subprocess.Popen(['bash', '/path/to/script', '--args'], stdin=first.stdout)
definimos uma variável var , depois usamos a classe subprocess.Popen para obter o valor de var usando /bin/echo e, em seguida, enviamos esse valor para o canal. O first é um objeto da classe subprocess.Popen .
Em seguida, usamos o STDOUT de first como STDIN de second via pipe e executamos o script bash de acordo.
Se você quiser salvar a saída de um comando como uma string, use subprocess.check_output function em vez de. :
second = subprocess.check_output(['bash', '/path/to/script', '--args'], stdin=first.stdout)
Leia a documentação oficial do módulo de subprocesso para obter mais ideias.