#!/bin/bash
show="ls -al /"
IFS=$'\n'
$show
結果はbash: ls -al /: No such file or directory
のようになります。
シェルは期待される結果を返すことができません。
IFSを$' \n'
(空白を追加したことに注意してください)と変更しても問題ありません。
私はIFSについて多くの知識を持っていませんが、誰かが説明することができますか? IFSはそれにスペースを持っていないし、あなたの変数にスペースが単語を誘発しないので、文字列全体ls -al /
は、シェルによってコマンド名として扱われている
show="ls -al /"
IFS=$'\n'
$show
:最初のケースで
http://mywiki.wooledge.org/WordSplitting –