The loop was executed $count times


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting The loop was executed $count times
# 15  
Old 11-19-2010
I do not think there is such a thing a pure POSIX compliant shell without additional features. Some shells aim to be. Of the shells I worked with dash comes closest I think.. I too prefer to take advantage of modern features and if I am working in an environment where that is not the problem, I will. Or if it is acceptable to compile or install superior ksh93 for every platform available, then fine.

But otherwise I restrict myself to POSIX compliant code, whenever possible.

A special case is this forum. To let solutions be of use in as many situations as possible, it is good practise to use POSIX compliant code, whether that is shell, awk, sed etc. If it is not, then it is good to mention that fact, for example you can state that it is GNU only of bash, ksh93, ksh, zsh etc.. That way you helping people who would otherwise waste time trying to reuse your code on their platform only to find out that it does not work..

Last edited by Scrutinizer; 11-19-2010 at 07:39 AM..
This User Gave Thanks to Scrutinizer For This Post:
# 16  
Old 11-19-2010
Quote:
Originally Posted by Scrutinizer
I haven't come across a situation where leaving out the $-sign did not work. Also, I found this:
Arithmetic Expansion

[...]
Hm, I stand corrected.

It's added to SUS v3, that phrase is missing in v2.

When I posted the wrong correction, I didn't even checked, I was really sure, because I remember it's been pointed out many times by shell experts (or it's just my memory not serving right Smilie).

Thank you!

---------- Post updated at 01:25 PM ---------- Previous update was at 12:34 PM ----------

OK,
trying to understand where my confusion came from, I searched my mail archive Smilie

I suppose that the following information will be of interest only to limited number of forum members:

Quote:
> using integer variables even without the $ symbol you don't care
I use $ in arithmetic expressions because there are shells
that fail if it is not there.
So:
Quote:
> [*] BTW, are there shells that support $((...)) but require to
> prefix 'i' by '$'?

Old versions of dash. The version in Debian etch requires the $, but
the current version doesn't.
Since dash is based on ash, maybe ash is the same.
Quote:
> Since dash is based on ash, maybe ash is the same.

ash didn't have support for $((...)) as it predates it. It did
have and expr builtin though. debian ash is based on NetBSD sh,
that one being based on ash as in all the other BSDs where sh is
not based on pdksh.

I don't know whether the change that allows variables without $
has made it to NetBSD sh, but a quick read of
http://cvsweb.netbsd.org/bsdweb.cgi/...rev=1.18&conte...
would seem to indicate it didn't.

Note that $((i * 2)) is not the same as $(($i * 2)) if $i is for
instance "1 + 1" in most shell implementations (the wording is
not clear (to me at least) in POSIX but I beleive the result is
unspecified then anyway for $((i * 2)); it's not clear whether
the output of i=-1; echo $((i * 2)) is specified either though I
wouldn't expect any shell to output anything other than -2 if
they do output anything).
The full text is here.
This User Gave Thanks to radoulov For This Post:
# 17  
Old 11-19-2010
Perhaps it is good to note that IMO this does not contradict what I wrote above, since recent POSIX says that the dollar sign can only be left out if the shell variable x contains a value that forms a valid integer constant, which is not the case in this example.

dash:
Code:
$ i="1 + 1"
$ echo $((i))
dash: Illegal number: 1 + 1
$ echo $(($i))
2

I wouldn't use arithmetic expansion for strings, so for me this is normally not relevant, but it is good to know...

Last edited by Scrutinizer; 11-19-2010 at 09:16 AM..
# 18  
Old 11-19-2010
I agree,
the main point was that there are old shells that require the preceding dollar sign.

---------- Post updated at 03:11 PM ---------- Previous update was at 02:41 PM ----------

Just to add that most probably the statement in SUS v3 that you indicated was added after S.C. expressed his opinion (see the next post in the c.u.s. thread by one of the authors of SUS.

Last edited by radoulov; 11-19-2010 at 10:22 AM..
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Reset while loop to loop same file multiple times

Hi, I want to read file multiple times. Right now i am using while loop but that is not working. ex. While read line do while read line2 do echo stmt1 #processing some data based on data., done < file2.txt done < file1.txt # This will have 10... (4 Replies)
Discussion started by: tmalik79
4 Replies

2. UNIX for Dummies Questions & Answers

How do I count how many times a specific word appear in a file (ksh)?

Hi Please can you help how do I count the number of specific characters or words that appear in a file? (8 Replies)
Discussion started by: fretagi
8 Replies

3. Shell Programming and Scripting

Count how many times in every file, strings appeared in a directory.

Hello, I have some files and i want to count how many times a string is appeared in each file. Lets say : #cat fileA stringA sdh stringB stringA #cat fileB stringB stringA sdb stringB stringB I need the output to be something like: (2 Replies)
Discussion started by: @dagio
2 Replies

4. UNIX for Dummies Questions & Answers

[Solved] Count amount of times of appearing of character before a word?

Hello Is there a way to calculate how many times a particular symbol appeared in a string before a particular word. Desktop/Myfiles/pet/dog/puppy So, I want to count number of occurence of"/" in this directory before the word dog lets say. Cheers, Bob (3 Replies)
Discussion started by: FUTURE_EINSTEIN
3 Replies

5. UNIX for Dummies Questions & Answers

how to count number of times each word exist in a file

I'm trying to count the number of times each word in the file exist for example if the file has: today I have a lot to write, but I will not go for it. The main thing is that today I am looking for a way to get each word in this file with a word count after it specifying that this word has... (4 Replies)
Discussion started by: shnkool
4 Replies

6. Shell Programming and Scripting

Match and count the number of times

ile1 Beckham Ronaldo file2 Beckham Beckham_human Ronaldo Ronaldo_spain Ronaldo Ronaldo_brazil Beckham Beckham_manch Zidane Zidane_Fran Rooney Rooney_Eng Output shud be (1 Reply)
Discussion started by: cdfd123
1 Replies

7. Shell Programming and Scripting

scripting - write a script that will count the number of times a particular word

hello everyone, I'm trying to learn some scripts but i cant get my head around two of them. 1. how can i write a script that will count the number of times a particular word is used in file? 2. how can i make a script that will take me to a web page from unix? if anyone could help it... (3 Replies)
Discussion started by: BigTool4u2
3 Replies

8. Shell Programming and Scripting

Looking for a single line to count how many times one character occurs in a word...

I've been looking on the internet, and haven't found anything simple enough to use in my code. All I want to do is count how many times "-" occurs in a string of characters (as a package name). It seems it should be very simple, and shouldn't require more than one line to accomplish. And this is... (2 Replies)
Discussion started by: Shingoshi
2 Replies

9. Shell Programming and Scripting

count times for one string

I have a file. I want to count the time for one string appears in this file Example: 56 73 34 79 90 56 34 Expected results 2:56 1:73 2:34 (1 Reply)
Discussion started by: anhtt
1 Replies

10. UNIX for Dummies Questions & Answers

Crons executed multiple times.

For some reason my crons are being executed twice. Any suggestion?? I'm currently on 5.8 (2 Replies)
Discussion started by: shorty
2 Replies
Login or Register to Ask a Question