Я встречаюсь с проблемой о системной функции. Если я бегуПочему функция «system» в Linux не запускает этот shellscript?
echo -e '\x2f'
в оболочке, выход /
, но когда я поставил команду в программе C, как:
int main(int argc, char* argv[], char** envp)
{
printf("The command is :%s\n",argv[1]);
system(argv[1]);
return 0;
}
выходе:
The command is :echo -e '\x2f'
-e \x2f
Почему функцию system
выход '-e \x2f
' вместо '/
'
BTW, я использую Python для ввода ARGV:
# I used \\ because python will transfer \x2f to/automatially
command="echo -e '\\x2f'"
p=process(executable='/home/cmd2',argv= ['/home/cmd2',command])
print (p.readall())
Поскольку сценарий запускается '/ bin/sh', а не'/bin/bash', а '/ bin/sh' не интерпретирует вещи так же, как'/bin/bash'. –