- Community Home
- >
- Servers and Operating Systems
- >
- Operating Systems
- >
- Operating System - HP-UX
- >
- Re: Incremental by 1 in the for loop
Categories
Company
Local Language
Forums
Discussions
Forums
- Data Protection and Retention
- Entry Storage Systems
- Legacy
- Midrange and Enterprise Storage
- Storage Networking
- HPE Nimble Storage
Discussions
Discussions
Discussions
Forums
Forums
Discussions
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
- BladeSystem Infrastructure and Application Solutions
- Appliance Servers
- Alpha Servers
- BackOffice Products
- Internet Products
- HPE 9000 and HPE e3000 Servers
- Networking
- Netservers
- Secure OS Software for Linux
- Server Management (Insight Manager 7)
- Windows Server 2003
- Operating System - Tru64 Unix
- ProLiant Deployment and Provisioning
- Linux-Based Community / Regional
- Microsoft System Center Integration
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Community
Resources
Forums
Blogs
- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
тАО04-09-2009 12:51 AM - edited тАО05-28-2012 01:25 AM
тАО04-09-2009 12:51 AM - edited тАО05-28-2012 01:25 AM
Re: Increment by 1 in the for loop
>Frank: To my mind it can be done.
Though in efficient, you could fix it as:
typeset -i count
for i in $(< $TMPFILE); do
print $count
(( count+=1 ))
done
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
тАО04-09-2009 04:21 AM
тАО04-09-2009 04:21 AM
Re: Incremental by 1 in the for loop
As an encompassing remark, efficiency may not seem very measureable in small scripts operating on minute amounts of data. Good practices there, however, lead to fast, scalable code that "thinks green".
Using 'typeset -i' creates an integer variable that makes arithmetic faster.
Using '(( N = N + 1 ))' to increment an integer by one lets the shell do the work without spawning a completely different process as when 'N=`expr $N + 1`' is used.
Writing 'X=$(< $FILE)' instead of 'X=$(cat $FILE)' is a subtle but faster optimization for capturing the contents of a file into a variable.
While, TMTOWTDI, there are fast and there are slow(er) paths to travel.
Regards!
...JRF...
- Tags:
- evil cat
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
тАО04-09-2009 04:27 AM
тАО04-09-2009 04:27 AM
Re: Incremental by 1 in the for loop
if it would be a linux server you could just simply use the 'seq' command like this:
for i in $(seq 1000)
do
echo "This is the $i line."
done
Unix operates with beer.
- Tags:
- seq
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
тАО04-09-2009 04:50 AM
тАО04-09-2009 04:50 AM
Re: Incremental by 1 in the for loop
Where can I find the documentation for the "typeset" command.
I looked in man pages, typed "typeset -?" and "-h", looked in several books but still can't find it.
RayB
- Tags:
- typeset
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
тАО04-09-2009 09:25 AM
тАО04-09-2009 09:25 AM
Re: Incremental by 1 in the for loop
> James, Where can I find the documentation for the "typeset" command.
The 'typeset' command is documented in shell manpages:
http://docs.hp.com/en/B3921-60631/sh-posix.1.html
Regards!
...JRF...
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
тАО04-09-2009 07:40 PM
тАО04-09-2009 07:40 PM
Re: Incremental by 1 in the for loop
Another reason to use ksh's (( )) is that it supports 64 bit integers and expr(1) only 32.
- Tags:
- expr
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
тАО04-09-2009 11:31 PM
тАО04-09-2009 11:31 PM
Re: Incremental by 1 in the for loop
revised to be more efficient:
------------------------ CUT HERE ------------------
#!/bin/sh
# range - Generate of numbers.
typeset -i lo=$1
typeset -1 hi=$2
while [ $lo -le $hi ]
do
echo -n $lo " "
(( lo=lo+1 ))
done
------------------------ CUT HERE ------------------
HTH,
Art
- « Previous
-
- 1
- 2
- Next »