1

について具体的な質問が 2 つありIFSます。内部フィールド区切り記号 をIFS変更すると、bash スクリプトの反復処理が変更されることは承知しています。

では、なぜ配列の長さが変わらないのでしょうか?

これが私の例です:

delimiter=$1
strings_to_find=$2

OIFS=$IFS
IFS=$delimiter
echo "the internal field separator is $IFS"
echo "length of strings_to_find is ${#strings_to_find[@]}"

for string in ${strings_to_find[@]}
do
    echo "string is separated correctly and is $string"
done

IFS=$OIFS

しかし、なぜ長さが新しい IFS の影響を受けないのでしょうか?

私が理解していない 2 番目のことは、IFS を入力引数に影響させる方法です。

入力引数が次のようになることを期待しているとしましょう。

./executable_shell_script.sh first_arg:second_arg:third_arg

IFSそして、 を に設定して、入力引数を解析したいと思います:。どうすればいいですか?IFS を設定しても何も起こらないようです。私はこれを間違っているに違いない....?

ありがとうございました。

4

2 に答える 2