我正在尝试在 bash 的同一个 echo 命令中打印两个变量,第一个变量"ID"是通过查看 .c 文件的第一行获得的。我剥离前缀以获得 ID = myid。
.c 文件的第一行
// EID:myid
去除前缀
firstLine=$(head -n 1 ~/my.c)
ID=${firstLine#*:}
如果我回显$ID,我会得到"myid";但是,如果我回显如下:
randomString="random"
echo $ID$randomString
randomString 将完全覆盖我的 ID,并且只会显示
random
我在 bash 中剥离前缀缺少什么?谢谢你的时间!
您的 .c 文件使用 MS-DOS 行尾,因此$ID
末尾有一个 CR。也去掉它。