উত্তর:
./Myscript.sh "$(cat text.txt)"
চেষ্টা করুন,
$ cat comli.txt
date
who
screen
wget
$ cat comli.sh
#!/bin/bash
which $1
$ for i in `cat comli.txt` ; do ./comli.sh $i ; done
তাই আপনি মান একের পর এক লিখতে পারেন comli.sh
থেকে comli.txt
।
প্রক্রিয়া বিকল্প
./Myscript.sh <(cat text.txt)
উদাহরণস্বরূপ দেখুন https://www.gnu.org/software/bash/manual/bash.html# প্রসেস- সাবস্টিটিউশন
ম্যাপফাইলে স্টিডিন পড়ে আপনি অবস্থানগত পরামিতিগুলি পুনরায় সেট করতে পারেন।
#!/bin/bash
[[ -p /dev/stdin ]] && { mapfile -t; set -- "${MAPFILE[@]}"; }
for i in $@; do
echo "$((++n)) $i"
done
("$ @" এর উদ্ধৃতি দিয়ে for
পরিবর্তে লুপ লাইন তৈরি করবে)।
$ cat test.txt | ./script.sh
1 one
2 two
3 tree
আইএমএইচও কেবলমাত্র সঠিকভাবে প্রশ্নের উত্তর দেওয়ার জন্য @ ব্যাকএন সম্পূর্ণ করার জন্য, এখানে একটি শর্ট-লাইনার রয়েছে যা আপনার স্ক্রিপ্টের আর্গুমেন্ট তালিকায় পাইপযুক্ত যুক্তিগুলি প্রিপেন্ড করবে:
#!/bin/bash
args=$@
[[ -p /dev/stdin ]] && { mapfile -t; set -- "${MAPFILE[@]}"; set -- $@ $args; }
echo $@
উদাহরণ ব্যবহার:
$ ./script.sh arg1 arg2 arg3
> arg1 arg2 arg3
$ echo "piped1 piped2 piped3" | ./script.sh
> piped1 piped2 piped3
$ echo "piped1 piped2 piped3" | ./script.sh arg1 arg2 arg3
> piped1 piped2 piped3 arg1 arg2 arg3