如果我在makefile中使用此代码,它会在第3行上混乱。这是我的代码:
dd if=/dev/zero bs=512 count=2880 of=testfloppy.img
device=$$(hdid -nomount testfloppy.img)
echo $device
newfs_msdos -F 12 $device
hdiutil detach $device -force
device=hdid testfloppy.img|cut -d ' ' -f 1
path=mount |grep -w '$device' | cut -d ' ' -f 3- | cut -d '(' -f 1
cp TEST.SYS $path/
hdiutil detach $device
但是,在运行此代码时,我会获得以下控制台代码:
dd if=/dev/zero bs=512 count=2880 of=testfloppy.img
2880+0 records in
2880+0 records out
1474560 bytes transferred in 0.004152 secs (355139415 bytes/sec)
device=$(hdid -nomount testfloppy.img)
echo evice
evice
newfs_msdos -F 12 evice
newfs_msdos: /dev/evice: No such file or directory
make: *** [All] Error 1
我尝试使用向后的壁虱,我也尝试将其与$$()部分制作为字符串,但两个都没有帮助。
在shell脚本中使用变量与如何在makefile中使用变量之间存在略有区别。
ex:
var=10
echo $var #Works well in shell script
echo $(var) #Works well in Makefile
echo ${var} #Works well in Makefile
在下面尝试makefile
dd if=/dev/zero bs=512 count=2880 of=testfloppy.img
device=hdid -nomount testfloppy.img
echo ${device}
newfs_msdos -F 12 ${device}
hdiutil detach ${device} -force
device=hdid testfloppy.img|cut -d ' ' -f 1
path=mount |grep -w '${device}' | cut -d ' ' -f 3- | cut -d '(' -f 1
cp TEST.SYS ${path}/
hdiutil detach ${device}