bash回显相互覆盖的多个变量

jsh*_*hen 1 string bash prefix echo

我试图在bash中的同一个echo命令中打印两个变量,第一个变量"ID"是通过查看.c文件的第一行获得的.我删除前缀以获取ID = myid.

.c文件的第一行

// EID:myid
Run Code Online (Sandbox Code Playgroud)

剥去前缀

firstLine=$(head -n 1 ~/my.c)
ID=${firstLine#*:}
Run Code Online (Sandbox Code Playgroud)

如果我回复$ ID,我会得到"myid"; 但是,如果我回应的话:

randomString="random"
echo $ID$randomString
Run Code Online (Sandbox Code Playgroud)

randomString将完全覆盖我的ID,它只会显示

random
Run Code Online (Sandbox Code Playgroud)

关于在bash中删除前缀我错过了什么?谢谢你的时间!

Ign*_*ams 5

您的.c文件使用MS-DOS行结尾,因此最后$ID有一个CR.剥去那个.