[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
$IFS and "${array[@]:offset}"
From: |
Stephane Chazelas |
Subject: |
$IFS and "${array[@]:offset}" |
Date: |
Thu, 05 Jun 2008 17:39:58 +0100 |
Configuration Information [Automatically generated, do not change]:
Machine: i486
OS: linux-gnu
Compiler: gcc
Compilation CFLAGS: -DPROGRAM='bash' -DCONF_HOSTTYPE='i486'
-DCONF_OSTYPE='linux-gnu' -DCONF_MACHTYPE='i486-pc-linux-gnu'
-DCONF_VENDOR='pc' -DLOCALEDIR='/usr/share/locale' -DPACKAGE='bash' -DSHELL
-DHAVE_CONFIG_H -I. -I../bash -I../bash/include -I../bash/lib -g -O2 -Wall
uname output: Linux sc.homeunix.net 2.6.25-rc8 #1 PREEMPT Fri Apr 4 08:56:07
BST 2008 i686 GNU/Linux
Machine Type: i486-pc-linux-gnu
Bash Version: 3.2
Patch Level: 39
Release Status: release
Hiya,
$ bash -c 'printf "%s\n" "${@:2}"' x 1 2 "3 4" 5
2
3 4
5
$ bash -c 'IFS=a; printf "%s\n" "${@:2}"' 0 1 2 "3 4" 5
2 3 4 5
I don't understand why $IFS would have any influence here. The
behavior differs from ksh.
It seems that you need to have " " in IFS or IFS being unset for
it to work as I would expect.
Also, this:
$ bash -c 'printf "%s\n" "${@:1}"' x 1 2 "3 4" 5
1
2
3 4
5
$ bash -c 'a=("$@"); printf "%s\n" "${a[@]:1}"' x 1 2 "3 4" 5
2
3 4
5
I find is quite confusing.
The behavior is the same in ksh, but in ksh ${@:0:1} expands to
$0 which makes it more understandable ($0 has its meaning in
functions as well in ksh which makes it somehow consistent).
In bash, ${@:0:1} and ${@:1:1} expand to the same thing ($1). Is
all that documented (I couldn't find it via a quick scan of the
man page)?
Best regards,
Stephane
- $IFS and "${array[@]:offset}",
Stephane Chazelas <=