如何解决我无法在 csh 中将字符串转换为整数
我想从文件 example.txt 中取出 '-0.5' 并将其加 1。
虽然我能够取出'-0.5'。但我无法给它加 1,也许是因为 -0.5 被认为是 字符串而不是整数。
代码:
#!/bin/csh
set x = `grep Name example.txt | cut -d "|" | -f 5`
echo $x
set y = `expr $x + 1`
echo $y
获得的结果:
-0.5
expr: non-numeric argument
预期结果:
-0.5
0.5
如何将 -0.5 类型转换为整数?
解决方法
csh 没有类型,一切都是字符串。
问题在于 expr
只接受整数:即整数。这同样适用于 csh 的内置 @
语法。
通常最好使用 bc
或 dc
:
% echo 0.5 + 1 | bc
1.5
% echo 0.5 1 + p | dc
1.5
所以在你的例子中:
#!/bin/csh
set x = `grep Name example.txt | cut -d "|" | -f 5`
set y = `echo "$x + 1" | bc`
echo $y
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。