Sponsored Content
Full Discussion: Strange type mistake?!
Top Forums Shell Programming and Scripting Strange type mistake?! Post 302913345 by Corona688 on Friday 15th of August 2014 11:46:32 AM
Old 08-15-2014
Oh! I'd missed the IFS! That's very important.

That's almost certainly related to your issue... IFS controls all splitting! So your script is effectively being forcefed each element as one parameter like:

Code:
./script "-N 0 -m 0"

instead of being split like you'd want, into

Code:
./script "-N" "0" "-m" "0"

...because that string contains no single-quotes to split upon.

Anyway, you don't need to set IFS here at all. It only controls how unquoted strings work in an array, it has nothing to do with the behavior of quotes themselves. Just be sure to quote your variables where you don't want them to split!

Code:
CONFIGURATION_ARRAY=( '-N 0 -m 0' '-N 0 -m 1'  )

for configuration in "${CONFIGURATION_ARRAY[@]}"
do
        printf "Quoted does not split: %s\n" "$configuration"
        printf "Unquoted split:  %s\n" $configuration
done

The quotes in red are special. When you put double-quotes around $@ or ${ARRAY[@]} it splits on array elements and not IFS.

This outputs:

Code:
Quoted does not split: -N 0 -m 0
Unquoted split:  -N
Unquoted split:  0
Unquoted split:  -m
Unquoted split:  0
Quoted does not split: -N 0 -m 1
Unquoted split:  -N
Unquoted split:  0
Unquoted split:  -m
Unquoted split:  1


Last edited by Corona688; 08-15-2014 at 12:55 PM..
This User Gave Thanks to Corona688 For This Post:
 

8 More Discussions You Might Find Interesting

1. UNIX for Dummies Questions & Answers

Crontab Mistake!!!

Hi. I hope someone can help me with this problem. Being a novice to Unix, I editted my crontab directly by typing " crontab -e ". Well, I needed to make some changes so, I typed " crontab -r ". Now I have no crontab, and I can't seem to get crontab to write a new file. I' ve tried: vi... (4 Replies)
Discussion started by: cstovall
4 Replies

2. Shell Programming and Scripting

String type to date type

Can one string type variable changed into the date type variable. (1 Reply)
Discussion started by: rinku
1 Replies

3. Programming

array type has incomplete element type

Dear colleagues, One of my friend have a problem with c code. While compiling a c program it displays a message like "array type has incomplete element type". Any body can provide a solution for it. Jaganadh.G (1 Reply)
Discussion started by: jaganadh
1 Replies

4. AIX

Did a Mistake with HACMP

Hi, I needed space on a FS, and when I've added the space on the filesystem, I did it trough the regular smitty fs inteface and not with smitty cl_lvm. Can someone help me to repair the situat before a faileover happen ? Thanks for your help,:mad: (13 Replies)
Discussion started by: azzed27
13 Replies

5. Shell Programming and Scripting

Is there any mistake in this code:

cat $1 | sort -n | uniq | $1 in other words, I sort the content of the file and put the ouput in the same file, is there any mistakes in this cshell code ??? (4 Replies)
Discussion started by: Takeeshe
4 Replies

6. UNIX for Dummies Questions & Answers

Probably some stupid mistake...

Hi everyone ! I have a file wich look like this : >Sis01 > Sis02 ... >Sis44 I want to separe each paragraphe in a different file, so I decide to use the "FOR" loop + sed. for f in {01..44} do (5 Replies)
Discussion started by: sluvah
5 Replies

7. UNIX for Dummies Questions & Answers

Can anyone help me to spot my mistake?

Hi there can anyone help me to spot my mistake and please explain why it appears My code : #!/usr/bin/gawk -f BEGIN { bytes =0} { temp=$(grep "datafeed\.php" | cut -d" " -f8) bytes += temp} END { printf "Number of bytes: %d\n", bytes } when I am running ./q411 an411 an411: ... (6 Replies)
Discussion started by: FUTURE_EINSTEIN
6 Replies

8. Programming

Strange value of the double type variable: -nan(0x8000000000000)

I am confused by the value of "currdisk->currangle" after adding operation. Initially the value of "currdisk->currangle" is 0.77500000000000013, but after adding operation, it's changed to "-nan(0x8000000000000)", Can anyone explain ? Thanks! The following is the occasion of gdb debugging. 3338 ... (8 Replies)
Discussion started by: 915086731
8 Replies
SPLIT(1)						    BSD General Commands Manual 						  SPLIT(1)

NAME
split -- split a file into pieces SYNOPSIS
split [-a suffix_length] [-b byte_count[k|m] | -l line_count -n chunk_count] [file [name]] DESCRIPTION
The split utility reads the given file and breaks it up into files of 1000 lines each. If file is a single dash or absent, split reads from the standard input. file itself is not altered. The options are as follows: -a Use suffix_length letters to form the suffix of the file name. -b Create smaller files byte_count bytes in length. If 'k' is appended to the number, the file is split into byte_count kilobyte pieces. If 'm' is appended to the number, the file is split into byte_count megabyte pieces. -l Create smaller files line_count lines in length. -n Split file into chunk_count smaller files. If additional arguments are specified, the first is used as the name of the input file which is to be split. If a second additional argument is specified, it is used as a prefix for the names of the files into which the file is split. In this case, each file into which the file is split is named by the prefix followed by a lexically ordered suffix using suffix_length characters in the range ``a-z''. If -a is not speci- fied, two letters are used as the suffix. If the name argument is not specified, 'x' is used. STANDARDS
The split utility conforms to IEEE Std 1003.1-2001 (``POSIX.1''). HISTORY
A split command appeared in Version 6 AT&T UNIX. The -a option was introduced in NetBSD 2.0. Before that, if name was not specified, split would vary the first letter of the filename to increase the number of possible output files. The -a option makes this unnecessary. BSD
May 28, 2007 BSD
All times are GMT -4. The time now is 07:32 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy