Linux 我无法在csh中将字符串强制转换为整数
我想从example.txt文件中取出'-0.5',并向其中添加1 虽然我能取出'-0.5'。但我无法将1添加到它,可能是因为-0.5被视为 字符串,而不是整数 代码: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 获得的结果:
#!/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不是整数