2016-05-22 10 views
0

以下のコードを使用して、異なる値のIFSの出力をテストしました。改行をIFSとして使用すると、余分な出力があるのはなぜですか?

#!/bin/bash 

IFS=$'\n' 

export $IFS 

for i in $(ls -la); 
do 
    echo $i; 
done 

しかし、IFSとしての改行では、次のものも出力前に出力されていました。なぜこの出力が表示されますか?

declare -x DBUS_SESSION_BUS_ADDRESS="unix:abstract=/tmp/dbus-xwjTMGqSe7,guid=b8543bd3ba7dbc5ca284b0ce5741ccff" 
declare -x DESKTOP_SESSION="default" 
declare -x DISPLAY=":0" 
declare -x GDMSESSION="default" 
declare -x GDM_LANG="en_US.utf8" 
declare -x GIO_LAUNCHED_DESKTOP_FILE="/usr/share/applications/atom.desktop" 
declare -x GIO_LAUNCHED_DESKTOP_FILE_PID="19896" 
declare -x GJS_DEBUG_OUTPUT="stderr" 
declare -x GJS_DEBUG_TOPICS="JS ERROR;JS LOG" 
declare -x GNOME_DESKTOP_SESSION_ID="this-is-deprecated" 
declare -x GPG_AGENT_INFO="/run/user/1000/keyring/gpg:0:1" 
declare -x LANG="en_US.utf8" 
declare -x NODE_ENV="production" 
declare -x NODE_PATH="/usr/share/atom/resources/app.asar/exports" 
declare -x OLDPWD 
declare -x PATH="/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games" 
declare -x SHELL="/bin/bash" 
declare -x SHLVL="1" 
declare -x SSH_AGENT_PID="2218" 
declare -x SSH_AUTH_SOCK="/run/user/1000/keyring/ssh" 
declare -x WINDOWPATH="7" 
declare -x XDG_CURRENT_DESKTOP="GNOME" 
declare -x XDG_DATA_DIRS="/usr/share/gnome:/usr/local/share/:/usr/share/" 
declare -x XDG_MENU_PREFIX="gnome-" 
declare -x XDG_RUNTIME_DIR="/run/user/1000" 
declare -x XDG_SEAT="seat0" 
declare -x XDG_SESSION_DESKTOP="default" 
declare -x XDG_SESSION_ID="1" 
declare -x XDG_VTNR="7" 
+0

[Bash FAQ 001](http://mywiki.wooledge.org/BashFAQ/001)を読んでみてください。 – chepner

答えて

3

ドル記号のため、exportコマンドです。

あなたの割り当てのために、$IFSは改行文字に展開されます。引用符を付けずにそのままシェルにドロップされ、引数なしでexportコマンドがそのまま残されます。

そしてhelp exportに従って:

export: export [-nf] [name[=value] ...] or export -p 
    [...] 
    If no NAMEs are given, or if `-p' is given, a list of 
    all names that are exported in this shell is printed. 
    [...] 

起こるまさにです。

この問題を修正するには、この場合は不要です(kojiro)ので、exportコマンドを完全にオフのままにしてください。

+2

これは質問された質問に対する正解ですが、私はOPがIFSを実際にエクスポートする必要はないと思います。 – kojiro

+0

ありがとうございます。それはうまくいった。 – taiyebur

+0

@kojiro、そうだね。 – taiyebur

関連する問題