"Illegal variable name" 运行 "docker stop $(docker ps -a -q)" 时出错

"Illegal variable name" error when running "docker stop $(docker ps -a -q)"

我正在尝试通过 ssh 发出命令 docker stop $(docker ps -a -q),使用 Python 的 paramiko 包

stdin,stdout,stderr = ssh_client.exec_command('docker stop $(docker ps -a -q)');
print stderr.readlines()

我收到一个错误 Illegal variable name。我尝试输入双引号 (""),转义 $, (, ) ... 但是 运行 没主意

听起来您正在使用 作为 ssh 服务器上的登录名 shell。 Csh 不支持 $(...) 所以试试

ssh_client.exec_command('docker stop `docker ps -a -q` ');

Csh 示例:

# echo $(echo foo)
Illegal variable name.
#