Sh 的 -c 参数
可以把一串字符串当作命令来执行, 以下结果是一样的
1 | echo "Hello" |
sudo 获取多命令权限
如果我想通过重定向给一个没有权限的文件添加内容,使用直接写法会因为 给了echo权限,而没给重定向权限 失败
1 | //Failure |
Docker执行RUN CMD EXECUTE
Docker官方文档中有特意的提示,需要在Dockerfile里使用该方法触发RUN 和 CMD
1 | Note: Unlike the shell form, the exec form does not invoke a command shell. ..... RUN [ "echo", "$HOME" ] ..... for example: RUN [ "sh", "-c", "echo $HOME" ]. |
或者在Host主机执行一些复杂的命令
1 | docker exec -i $DOCKER_NAME sh -c "mysqldump -uroot -proot -P 3306 --default-character-set=utf8mb4 $DATABASE_NAME> $BACKUP_PATH" |