এই শেল স্ক্রিপ্ট প্রিন্টিং ইনপুটগুলি কেন দু'বার?
আমি প্রত্যাশা করেছি স্ক্রিপ্টটি 5 এর পরে ইনপুটগুলিকে উপেক্ষা করবে।
লিপি:
#! /bin/bash
echo "Enter 5 words : "
read a b c d e
printf "> %s %s %s %s %s <" $a $b $c $d $e
আউটপুট:
user@linux:~$ pico ifs2.sh
user@linux:~$ ./ifs2.sh
Enter 5 words :
1 2 3 4 5
> 1 2 3 4 5 <user@linux:~$ ./ifs2.sh
Enter 5 words :
1 2 3 4 5 6
> 1 2 3 4 5 <> 6 <user@linux:~$ ./ifs2.sh
Enter 5 words :
1 2 3 4 5 6 7 8 9 0
> 1 2 3 4 5 <> 6 7 8 9 0 <user@linux:~$
এবং, script আইএফএসে সেট করা যাই হোক না কেন নিম্নলিখিত স্ক্রিপ্টটি কাজ করে। কেন?
#! /bin/bash
old="$IFS"
IFS=":"
echo "IFS = $IFS"
echo "Enter 5 words : "
read a b c d e
printf "> %s %s %s %s %s <" $a $b $c $d $e
IFS="$old"
আউটপুট:
user@linux:~$ ./ifs2.sh
IFS = :
Enter 5 words :
1 2 3 4 5
> 1 2 3 4 5 <user@linux:~$ ./ifs2.sh
IFS = :
Enter 5 words :
1 2 3 4 5
> 1 2 3 4 5 <user@linux:~$ ./ifs2.sh
IFS = :
Enter 5 words :
1:2:3:4:5
> 1 2 3 4 5 <user@linux:~$
printf
কোনও ফর্ম্যাট স্পেসিফায়ারের\c
সাথে যুক্ত এর সাথে যে কোনও সময় থামুন%b
। লাইক:printf %s%\ d%b thing 3 "${var+\cquit printing if set}\nelse do a newline" and 0 keep\ going.