Sponsored Content
Operating Systems OS X (Apple) Generate a random number in a fully POSIX compliant shell, 'dash'... Post 303043130 by wisecracker on Sunday 19th of January 2020 11:02:39 AM
Old 01-19-2020
Quote:
Originally Posted by MadeInGermany
Better replace all expr with arithmetics by the builtin=faster $(( ))
Code:
    SEED1=$(( ${SEED1} + 1 ))
TEST_VAL=$(( 0${TEST_VAL#??} ))

As the clock is very quickly cycling inside the microsecond part there is always a possibility of these values '00000' to '09999' occurring. These are obviously NOT octal but decimal with leading zeros so......
......I used 'expr' to remove leading zeros otherwise there is a major shell error, thus I can't see how your modification works.
The maths method does not remove those leading zeros...
 

10 More Discussions You Might Find Interesting

1. Programming

How to generate a random number?

How to generate a random integer with specific range(for example, from 1 to 1000)? Also, how to convert a floating point number into a integer? (2 Replies)
Discussion started by: MacMonster
2 Replies

2. Shell Programming and Scripting

generate random number in korn shell

I want to be able to generate a random number within a korn shell script.. Preferably i would like to be able to state how many digits should be in this random number... ie 4 digits or 5 digits etc Any ideas? (2 Replies)
Discussion started by: frustrated1
2 Replies

3. Shell Programming and Scripting

generate random number in perl

Could any one tell how can I generate random number from (0, 100..200) in perl? Thanks! (2 Replies)
Discussion started by: zx1106
2 Replies

4. Programming

Generate random number

I saw this formula to generate random number between two specified values in shell script.the following. $(((RANDOM%(max-min+divisibleBy))/divisibleBy*divisibleBy+min)) Give a example in book. Generate random number between 6 and 30.like this. $(((RANDOM%30/3+1)*3)) But I have a... (1 Reply)
Discussion started by: luoluo
1 Replies

5. Shell Programming and Scripting

Unix random number generate in given range

Hi All, I have extracted some report from database for few activities done. Now I have a requirement to add some random time(In range of 10-35) in front of each activity. Can be generated random numbers in any bash/sh shell within a given number range, let's say in between 10-30. ... (10 Replies)
Discussion started by: gr8_usk
10 Replies

6. Shell Programming and Scripting

Logical expression in POSIX compliant Korn Shell

Hi, i want to check if a variable var1 is not a or b or c pseudo code: If NOT (var1 = a or var1 = b or var1 = c) then ... fi I want to use POSIX complaint Korn shell, and for string comparison For the following code, logical.sh #!/usr/bin/ksh var="j" echo "Var : $var" if ! { || ||... (12 Replies)
Discussion started by: ysrini
12 Replies

7. UNIX for Dummies Questions & Answers

how to generate random number as as the first column of a txt file

Dear all, I have a question. I have a txt file say 4000 rows X 1800 Column. I 'd like to creat a new column as the first column which is a column of random numbers (n=4000) thanks a lot! Lin (2 Replies)
Discussion started by: forevertl
2 Replies

8. Shell Programming and Scripting

Help with generate a pair of random number

Hi, Is anybody experience generate a pair of random number by using awk command? I wanna to generate a pair of random number (range from 1 to 4124) and repeats it 416 times. Desired output 2 326 123 1256 341 14 3245 645 . . . I did write the below command: awk... (5 Replies)
Discussion started by: perl_beginner
5 Replies

9. Shell Programming and Scripting

Generating a POSIX random number?

Hi Guys and gals... As you know I am getting to grips with POSIX and hit this stumbling block. Generating two random numbers 0 to 255 POSIXly. Speed in not important hence the 'sleep 1' command. I have done a demo that works, but it sure is ugly! Is there a better way? #!/bin/sh # Random... (12 Replies)
Discussion started by: wisecracker
12 Replies

10. Shell Programming and Scripting

Q: Is SQRT(n) possible in a POSIX compliant shell? A: Yes within limits.

Hi all... This is just a fun project to see if it is possible to get a square root of a positive integer from 1 to 9200000 to 6 decimal places on a 64 bit architecture machine. It is coded around dash and the results show the values from 0 to 10000. Complex numbers can easily be catered for by... (3 Replies)
Discussion started by: wisecracker
3 Replies
strptime(3C)															      strptime(3C)

NAME
strptime() - date and time conversion SYNOPSIS
DESCRIPTION
The function converts the character string pointed to by buf to values which are stored in the structure pointed to by tm, using the format specified by format. The format is composed of zero or more directives. Each directive is composed of one of the following: one or more white-space characters (as specified by the function); an ordinary character (neither nor a white-space character); or a conversion specification. Each conver- sion specification is composed of a character followed by a conversion character which specifies the replacement required. There must be whitespace or other non-alphanumeric characters between any two conversion specifications. The following conversion specifications are supported: is the day of week, using the locale's weekday names; either the abbreviated or full name may be specified. is the same as is the month, using the locale's month names; either the abbreviated or full name may be specified. is the same as is the date and time, using locale's date and time format (for example, as is the century number [0,99]; leading zeros are permitted but not required. is the day of month [1,31]; leading zeros are permitted but not required. is the date as is the same as is the same as is the hour (24-hour clock) [0,23]; leading zeros are permitted but not required. is the hour (12-hour clock) [1,12]; leading zeros are permitted but not required. is the day number of the year [1,366]; leading zeros are permitted but not required. is the month number [1,12]; leading zeros are permitted but not required. is the minute [0,59]; leading zeros are permitted but not required. is any whitespace. is the locale's equivalent of a.m or p.m. is the 12-hour clock time in AM/PM notation equivalent to format or the format specified in of the portion of the current locale, if it is not empty. Otherwise, returns NULL. is the time as is the seconds [0,60]; leading zeros are permitted but not required. is any whitespace. is the time as is the week number of the year (Sunday as the first day of the week) as a decimal number [0,53]; leading zeros are permitted but not required. All days in a year preceding the first Sunday are con- sidered to be in week 0. is the weekday as a decimal number [0,6], with 0 representing Sunday; leading zeros are permitted but not required. is the week number of the year (Monday as the first day of the week) as a decimal number [0,53]; leading zeros are permitted but not required. All days in a year preceding the first Monday are con- sidered to be in week 0. is the date, using the locale's date format. is the time, using the locale's time format. is the year within the century [0,99]; leading zeros are permitted but not required. If no century has been specified (for example, via the directive), the 20th century(1900s) is assumed for inputs in the range 69-99, and the 21st century(2000s) is assumed for inputs in the range 00-68. is the year, including the century (for example, 1992). is replaced by Modified Directives Some directives can be modified by the and modifier characters to indicate that an alternative format or specification should be used rather than the one normally used by the unmodified directive. If the alternative format or specification does not exist in the current locale, the behavior will be as if the unmodified directive were used. is the locale's alternative appropriate date and time representation. is the name of the base year (period) in the locale's alternative representation. is the locale's alternative date representation. is the locale's alternative time representation. is the offset from (year only) in the locale's alternative representation. is the full alternative year representation. is the day of the month using the locale's alternative numeric symbols; leading zeros are permitted by not required. is the same as is the hour (24-hour clock) using the locale's alternative numeric symbols. is the hour (12-hour clock) using the locale's alternative numeric symbols. is the month using the locale's alternative numeric symbols. is the minutes using the locale's alternative numeric symbols. is the seconds using the locale's alternative numeric symbols. is the week number of the year (Sunday as the first day of the week) using the locale's alternative numeric symbols. is the number of the weekday (Sunday=0) using the locale's alternative numeric symbols. is the week number of the year (Monday as the first day of the week) using the locale's alternative numeric symbols. is the year (offset from in the locale's alternative representation and using the locale's alternative numeric symbols. A directive composed of whitespace characters is executed by scanning input up to the first character that is not whitespace (which remains unscanned), or until no more characters can be scanned. A directive that is an ordinary character is executed by scanning the next character from the buffer. If the character scanned from the buffer differs from the one comprising the directive, the directive fails, and the differing and subsequent characters remain unscanned. A series of directives composed of whitespace characters or any combination thereof is executed by scanning up to the first character that is not white space (which remains unscanned), or until no more characters can be scanned. Any other conversion specification is executed by scanning characters until a character matching the next directive is scanned, or until no more characters can be scanned. These characters, except the one matching the next directive, are then compared to the locale values asso- ciated with the conversion specifier. If a match is found, values for the appropriate structure members are set to values corresponding to the locale information. Case is ignored when matching items in buf such as month or weekday names. If no match is found, fails and no more characters are scanned. If the date specified exceeds the maximum time representable by the data type in 32-bit HP-UX (which repre- sents Tuesday January 19 03:14:07 UTC, 2038) or if the date exceeds the maximum date supported in 64-bit HP-UX (which is Friday December 31 23:59:59 UTC, 9999), fails and a null pointer is returned. EXTERNAL INFLUENCES
Environment Variables may define the alternative symbols (alt_digit; see localedef(4)) used by the modifier. The alt_digit definition has precedence over alt_digits (Support for alt_digit may be removed in a future release of HP-UX. determines the characters to be interpreted for those directives described above as being from the locale. determines the interpretation of the bytes within format as single- and/or multibyte characters. International Code Set Support Single- and multibyte character code sets are supported. RETURN VALUE
Upon successful completion, returns a pointer to the character following the last character parsed. Otherwise, a null pointer is returned. EXAMPLES
The following program segment uses to convert the string (first argument) to values according to the format specified in the second argu- ment. struct tm t; setlocale(LC_TIME, "en_US.iso88591"); strptime("1:04:23 PM on 10/6/92", "%I:%M:%S %p on %D", &t); The converted value is stored in the structure t as follows: t.tm_sec = 23 t.tm_min = 4 t.tm_hour = 13 t.tm_mday = 6 t.tm_mon = 9 t.tm_year = 92 t.tm_wday = 2 t.tm_yday = 279 t.tm_isdst = 1 AUTHOR
was developed by OSF and HP. SEE ALSO
scanf(3S), strftime(3C), getdate(3C), ctime(3C), setlocale(3C), thread_safety(5). STANDARDS CONFORMANCE
strptime(3C)
All times are GMT -4. The time now is 09:05 PM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy