, Как назвать файл сценария оболочки с аргументом переменной через python

Вы, наверное, ошибаетесь и не установили для любезности -20.

Если вы выполнили команду как обычный пользователь, вместо -x вы получите 0. Для значений> 20 вы получите 20.

Если вы работаете как root, для значений <-20 вы получите -20.

Тестирование как обычный пользователь:

$ nice -n -20 sleep 100
nice: cannot set niceness: Permission denied

# ps ax -o pid,ni,cmd | grep "sleep 100"
26349   0 sleep 100

Тестирование как root:

$ sudo nice -n -200 sleep 100

# ps ax -o pid,ni,cmd | grep "sleep 100"
28118   0 sudo nice -n -200 sleep 100
28119 -20 sleep 100
0
03.09.2018, 14:44
1 ответ

Лучше использовать модуль подпроцесса .

>>> subprocess.run(["ls", "-l"])  # doesn't capture output
CompletedProcess(args=['ls', '-l'], returncode=0)

Модуль подпроцесса предоставляет более мощные средства для создания новых процессов и получения их результатов; использование этого модуля предпочтительнее использования этой функции.

Но вы можете использовать подстановку строк:

call_with_args = "./script2.py '%s' '%s'" % (str(arg1), str(arg2))
os.system(call_with_args)

Или формат строки

>>> '{0}, {1}, {2}'.format('a', 'b', 'c')
'a, b, c'
0
28.01.2020, 04:13

Теги

Похожие вопросы