以完全错误的顺序回显打印variables
我正在试图创build一个string与将保存/发送到另一个位置的查询,这个string包含不同的variables。
我遇到的问题是variables的回声完全颠倒混合。
见下面的代码:
tokenID=$(docker exec -ti $dockerContainerID /bin/sh -c "cat /tempdir/tokenfile.txt") serverName="asdasd" attQuery="$tokenID $serverName" agentRegQuery="$./opt/mule/bin/amc_setup -H $attQuery" echo TOKEN ID $tokenID echo SERVER NAME $serverName echo $attQuery echo $agentRegQuery
查找下面我收到的输出:
TOKEN ID 29a6966f-fa0e-4f08-87eb-418722872d80---46407 SERVER NAME asdasd asdasdf-fa0e-4f08-87eb-418722872d80---46407 asdasdmule/bin/amc_setup -H 29a6966f-fa0e-4f08-87eb-418722872d80---46407
在tokenID
variables的末尾有一个回车字符,可能是因为/tempdir/tokenfile.txt是DOS / Windows格式(行以回车+换行符结束),而不是unix(行以换行符结束)。 当你自己打印tokenID
的时候,它看起来不错,但是如果你在同一行上打印了其他的东西,它会覆盖掉这一行的第一部分。 所以当你打印$attQuery
,它打印这个:
29a6966f-fa0e-4f08-87eb-418722872d80---46407[carriage return] asdasd
…但第二行打印在第一行,所以它出现为:
asdasdf-fa0e-4f08-87eb-418722872d80---46407
解决的办法是将文件转换为unix格式( dos2unix
将这样做,如果你有),或删除脚本中的回车。 你可以这样做:
tokenID=$(docker exec -ti $dockerContainerID /bin/sh -c "cat /tempdir/tokenfile.txt" | tr -d '\r')
我认为一切都应该如此
echo TOKEN ID $tokenID -> TOKEN ID 29a6966f-fa0e-4f08-87eb-418722872d80---46407 echo SERVER NAME $serverName -> SERVER NAME asdasd echo $attQuery -> asdasdf-fa0e-4f08-87eb-418722872d80---46407 echo $agentRegQuery -> asdasdmule/bin/amc_setup -H 29a6966f-fa0e-4f08-87eb-418722872d80---46407
你为什么觉得这里有什么东西? 最好的问候,乔治
- Bash脚本入口点(PID = 1)杀死`尾巴`subprocess只有当一个假陷阱(没有什么)在那里
- 在构build期间将别名添加到Docker
- 在运行容器之前运行bash命令
- 如何在.sh文件中运行“docker-compose up”命令?
- 从Docker中的bash中logging:logging器错误:socket / dev / log:没有这样的文件或目录
- 运行SQL时,Bash中的“ – EOSQL”代码块是什么?
- jenkins – 不能运行程序“docker”
- 如何到达docker-compose中的链接服务?
- 在Mac上运行Docker,构build工程,运行错误:/ bin / sh:1: