我正在观察一个奇怪的问题,当我在另一个变量(B)中替换变量(A)并打印变量B时,控制台输出混乱了。
docker_command="docker ps | grep consul | awk '{print \$1}'"
container_id=$(execute_command_on_host $IP $USER_NAME $USER_PASSWD "$docker_command")
echo "container_id: $container_id"
service_command="docker exec "$container_id" consul catalog services"
echo "service_command: $service_command"
#run script
Output:
container_id: 411d55019dba
consul catalog servicesommand: docker exec 411d55019dba
输出的最后一行搞砸了,有点混乱。但是如果我使用container_id运行directy那么相同的脚本然后它可以工作
container_id="411d55019dba"
service_command="docker exec "$container_id" consul catalog services"
echo "service_command: $service_command"
#run script
Output:
service_command: docker exec 411d55019dba consul catalog services
我觉得我错过了很简单的事情。非常感谢任何帮助
答案 0 :(得分:0)
我尝试了以下内容,它对我有用。
docker_command="docker ps | awk '/consul/{print \$1}' | tr -d '\r\n'"
线路编码似乎是个问题