我尝试解析一个A.conf
包含以下内容的纯文本配置文件:
bitrate 500000
use_can 1
我想使用后面的数字bitrate
来设置具有适当比特率的 CAN 接口。这是我的 shell 脚本的相应部分:
bitrate="$(cat /home/pi/A.conf | grep 'bitrate' | awk '{print $2}')"
sudo /sbin/ip link set can0 up type can bitrate $bitrate
如果 number 之后至少有一个空格字符,则它工作正常,500000
但如果它后面紧跟一个换行符,则不会。在那种情况下,我得到这个错误输出:
" is wrong: invalid "bitrate" value
这种行为的原因是什么,我该如何解决?我不想依赖每个配置文件在每个新行之前都需要空格字符这一事实。
您的输入文件显然包含 DOS 回车符(ctrl-M,八进制
\015
)。理智的解决方案首先不是不使用 Windows 编辑器;一个合理的解决方法是显式删除此字符。还要注意这是如何消除无用
cat
的和无用的grep
。