Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux 我无法在csh中将字符串强制转换为整数_Linux_Scripting_Csh - Fatal编程技术网

Linux 我无法在csh中将字符串强制转换为整数

Linux 我无法在csh中将字符串强制转换为整数,linux,scripting,csh,Linux,Scripting,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 获得的结果:

我想从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
获得的结果:

#!/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
预期结果:

#!/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

-0.5不是整数