Я пытаюсь сделать следующее:
setenv PRJ_ROOT /home/to/proj_dir
setenv VAR1 /home/user/john/to/proj_dir/design_files
setenv VAR2 /home/user/john/to/proj_dir/model_files
....
....
....
setenv VARN /home/user/john/to/proj_dir/random_files
Итак, если у меня есть все вышеупомянутые команды в файле с именем «setup», я могу просто вызвать «source setup», чтобы установить все переменные env. Но теперь я хочу сделать его общим по отношению к пути.
Я пробовал subprocess.call и os.environ, чтобы установить путь, но не добился успеха. Мой код ниже. Я новичок в python и пытаюсь развить это умение, пожалуйста, руководство.
#!/usr/bin/python
import os
import subprocess
cmd1 = "setenv VAR1 path"
cmd2 = "setenv VAR1 path"
...
...
...
path = os.getcwd()
var1Path = path + '/design_files'
var2Path = path + '/model_files'
...
...
...
#try 1
os.environ['VAR1'] = var1Path
os.environ['VAR2'] = var2Path
....
....
#try 2
subprocess.call(cmd1, shell=True)
#(or)
subprocess.call(cmd1, shell=True, executable='/bin/bash')
#(or)
subprocess.call(['/bin/bash','-i','-c', cmd1])
#(or)
subprocess.Popen(['/bin/sh', cmd])
#NOTE: tried both /bin/sh and also /bin/bash
Ожидаемый результат:
после запуска скрипта, если я сделаю «echo $ VAR1», вывод должен быть полным путем.
Фактический результат:
/bin/sh: setenv: command not found
(or)
bash: setenv: command not found