I want to fetch out ‘-0.5’ from the file example.txt and add 1 to it.
Although I am able to fetch out ‘-0.5’. but I am unable to add 1 to it, maybe because -0.5 is considered as a string and not a integer.
Code:
JavaScript
x
#!/bin/csh
set x = `grep Name example.txt | cut -d "|" | -f 5`
echo $x
set y = `expr $x + 1`
echo $y
Obtained Result:
JavaScript
-0.5
expr: non-numeric argument
Expected Result:
JavaScript
-0.5
0.5
How do I type cast -0.5 to integer?
Advertisement
Answer
csh doesn’t have types, and everything is a string.
The problem is that expr
only accepts integers: that is, whole numbers. The same applies to csh’s built-in @
syntax.
It’s usually better to use bc
or dc
for this:
JavaScript
% echo 0.5 + 1 | bc
1.5
% echo 0.5 1 + p | dc
1.5
So in your example:
JavaScript
#!/bin/csh
set x = `grep Name example.txt | cut -d "|" | -f 5`
set y = `echo "$x + 1" | bc`
echo $y