我无法在 csh 中将字符串类型转换为整数

I am unable to type cast string to integer in 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 的内置 @ 语法。

通常使用 bcdc 会更好:

% 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