Thanks all for your time. Actually the problem was with the LC_ALL configuration. On the machine where there was arithmetic syntax error it was "fr_FR.UTF-8".
If I set the LC_ALL to "fr_FR.UTF-8" as shown below I can reproduce the problem.
Code:
root(0)> LC_ALL=fr_FR.UTF-8
[/root]
root(0)> locale
LANG=fr_FR.UTF-8
LC_CTYPE="fr_FR.UTF-8"
LC_NUMERIC="fr_FR.UTF-8"
LC_TIME="fr_FR.UTF-8"
LC_COLLATE="fr_FR.UTF-8"
LC_MONETARY="fr_FR.UTF-8"
LC_MESSAGES="fr_FR.UTF-8"
LC_PAPER="fr_FR.UTF-8"
LC_NAME="fr_FR.UTF-8"
LC_ADDRESS="fr_FR.UTF-8"
LC_TELEPHONE="fr_FR.UTF-8"
LC_MEASUREMENT="fr_FR.UTF-8"
LC_IDENTIFICATION="fr_FR.UTF-8"
LC_ALL=fr_FR.UTF-8
[/root]
root(0)> cat /tmp/t.ksh
#!/bin/ksh
i=10
j=10.01
if [ $i -ge $j ]
then
echo "$i is ge $j"
else
echo "$j is ge $i"
fi
[/root]
root(0)> /tmp/t.ksh
/tmp/t.ksh[6]: [: 10.01: arithmetic syntax error
10.01 is ge 10
To solve the problem, set LC_ALL=C.
Code:
root(0)> LC_ALL=C
[/root]
root(0)> /tmp/t.ksh
10.01 is ge 10
[/root]
Thanks,
Adithya
Last edited by Adithya Gokhale; 08-14-2015 at 06:56 AM..
These 2 Users Gave Thanks to Adithya Gokhale For This Post:
Hi Gurus,
I wrote a small KSH script, in that i am comparing two variables like this
curr_time = date +%h.%m
set_time=23.55
If ];
then
zip the file
fi
The above script is croned to run evey 5(3,8,.......,58) minutes, but it is zipping at 23.03 hours. My intention is at 23.58 .what... (4 Replies)
Im trying to compare two numbers with decimals but its not working as expected.
a=1
b=1.1
if
then echo "equal"
fi
When I do this it says that the numbers are equal. Ultimately Im using -le and -ge in the if statements but I tested with -eq for simplicity.
Any way to make this... (3 Replies)
Hi all,
Iīve already searched the forum but canīt find what i am doing wrong.
I am trying to compare two variables using ksh under red hat. The error I get is:
-ksh: .: MDA=`md5sum /tmp/ftp_dir_after_transfer | cut -d' ' -f1 `
MDB=`md5sum /tmp/ftp_dir_before_transfer | cut -d' ' -f1 `... (3 Replies)
hi,
i have a bash script that i want to receive a a string from another bash file. But because the string has a dot in the middle it gives me an error. The error is in this line:
let valor=$1
and the value passed is rules.txt
the error is:
let: valor=rules.txt: syntax error: invalid... (2 Replies)
For numbers between 0 and 1 the below logic is not working.
Output of above shall be "correct" but its echoing "incorrect".Kindly suggest
a=.1
if
then
echo correct
else echo incorrect
fi
Video tutorial on how to use code tags in The UNIX and Linux Forums. (3 Replies)
I am trying to perform arithmetric, for example, to increment the value of variable $a (say 3) by 0.05 but when I tried the following expression
let a=a+0.05
or a=$((a+0.05))
both returned
3.0499999999999998
I want to keep 2 decimal places so it returns 3.05 instead. (6 Replies)
i am having a varialbe a , which is input to my file
i want to multiply this input with value .43, and assign it to variable b.
i tried it as below:
#!/bin/sh
a=$1
b=`expr $1\*0.43`
echo b=$b
error : expr: non-integer argument
Please tell me , how to do this.
Thanks (10 Replies)
Hello,
I am new to shell scripting and getting the error "arithmetic syntax error" on line 55 of my script.
Below is line 55 and 56
Backup=$ (( $Year*365+$Day ))
if ] then PrevHostname=$Hostname; PrevBackup=$Backup
Error:
./mksysbChk.ksh: line 56: *365+as : arithmetic syntax... (10 Replies)
Discussion started by: hasn318
10 Replies
LEARN ABOUT CENTOS
locale.conf
LOCALE.CONF(5) locale.conf LOCALE.CONF(5)NAME
locale.conf - Configuration file for locale settings
SYNOPSIS
/etc/locale.conf
DESCRIPTION
The /etc/locale.conf file configures system-wide locale settings. It is read at early-boot by systemd(1).
The basic file format of locale.conf is a newline-separated list of environment-like shell-compatible variable assignments. It is possible
to source the configuration from shell scripts, however, beyond mere variable assignments, no shell features are supported, allowing
applications to read the file without implementing a shell compatible execution engine.
Note that the kernel command line options locale.LANG=, locale.LANGUAGE=, locale.LC_CTYPE=, locale.LC_NUMERIC=, locale.LC_TIME=,
locale.LC_COLLATE=, locale.LC_MONETARY=, locale.LC_MESSAGES=, locale.LC_PAPER=, locale.LC_NAME=, locale.LC_ADDRESS=, locale.LC_TELEPHONE=,
locale.LC_MEASUREMENT=, locale.LC_IDENTIFICATION= may be used to override the locale settings at boot.
The locale settings configured in /etc/locale.conf are system-wide and are inherited by every service or user, unless overridden or unset
by individual programs or individual users.
Depending on the operating system, other configuration files might be checked for locale configuration as well, however only as fallback.
OPTIONS
The following locale settings may be set using /etc/locale.conf: LANG=, LANGUAGE=, LC_CTYPE=, LC_NUMERIC=, LC_TIME=, LC_COLLATE=,
LC_MONETARY=, LC_MESSAGES=, LC_PAPER=, LC_NAME=, LC_ADDRESS=, LC_TELEPHONE=, LC_MEASUREMENT=, LC_IDENTIFICATION=. Note that LC_ALL may not
be configured in this file. For details about the meaning and semantics of these settings, refer to locale(7).
EXAMPLE
Example 1. German locale with English messages
/etc/locale.conf:
LANG=de_DE.UTF-8
LC_MESSAGES=en_US.UTF-8
SEE ALSO systemd(1), locale(7), systemd-localed.service(8)systemd 208LOCALE.CONF(5)