docker里 rsh命令如何给双引号自动加反斜杠转义
时间: 2023-06-29 17:06:15 浏览: 88
在 Docker 中,使用 rsh 命令时,需要给双引号自动加反斜杠转义,可以使用以下命令:
```sh
alias rsh='docker run -it --rm --privileged --pid=host justincormack/nsenter1 /bin/bash -c "mount -t proc proc /proc && mount -t sysfs sys /sys && mount -t debugfs debug /sys/kernel/debug && nsenter --target $(docker inspect --format {{.State.Pid}} $HOSTNAME) --mount --uts --ipc --net --pid"'
```
这个命令会将 rsh 命令重定向到 docker 容器内的 /bin/bash,然后使用 nsenter 进入到 Docker 主机的命名空间中。
如果你需要在 rsh 命令中使用双引号,可以通过在命令中使用单引号来避免转义:
```sh
rsh 'echo "Hello World!"'
```
这样,双引号就会被正确地传递到 Docker 容器中。
相关问题
docker 命令如何给双引号自动加反斜杠转义
在使用 docker 命令时,如果需要在参数中包含双引号,可以在双引号前面加上反斜杠来转义,例如:
```
docker run -e VAR="\"value\"" IMAGE
```
这样参数中的双引号就会被转义为 `\"`,但是如果需要输入大量参数,手动添加转义符可能会很麻烦。在 Linux 系统中可以使用 `sed` 命令来自动添加转义符,例如:
```
echo 'docker run -e VAR="value" IMAGE' | sed 's/"/\\"/g'
```
这个命令会将双引号替换为 `\"`,输出结果为:
```
docker run -e VAR=\"value\" IMAGE
```
可以将输出结果直接作为 docker 命令执行。
docker 参数字符串双引号转义
在 Docker 中,如果你需要将双引号(")作为参数传递给一个命令,可以使用反斜杠(\)进行转义。例如,如果你想在容器中执行以下命令:
```
echo "Hello, World!"
```
你可以使用以下命令:
```
docker run <image> echo \"Hello, World!\"
```
这将在容器中执行 echo 命令,并输出 "Hello, World!"。注意双引号前面加了反斜杠进行转义。