について具体的な質問が 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 を設定しても何も起こらないようです。私はこれを間違っているに違いない....?
ありがとうございました。