আমাকে বলা হয়েছিল এটি সম্ভব ছিল, তবে একক কাজের উদাহরণ sed
ছাড়াই কোনও স্ট্রিং ভেরিয়েবল থেকে ইনপুট ফাইলের প্রয়োজন ছাড়াই পড়তে পারে। আমি এখনও এটি কাজ পেতে। সাধারণ সুরক্ষার জন্য, আমি $PATH
ভেরিয়েবলটি অন্য ভেরিয়েবলটিতে লিখছি , কারণ আমি এটির সাথে ঝামেলা করছি কারণ এটি কীভাবে করা যায় তা সঠিকভাবে না জানা পর্যন্ত আমার অন্যান্য সমস্যা দেখা দেওয়ার দরকার নেই।
নিম্নোক্ত বিবেচনা কর:
~$x=$PATH
~$sed -i 's/:/ /g' $x
এটি এতে ব্যর্থ হয়: এ জাতীয় কোনও ফাইল বা ডিরেক্টরি নেই।
আমি চেষ্টা করেছি এমন আরও কয়েক জন এখানে রয়েছে:
~$ sed -i 's/:/ /g' | (read x)
sed: no input files
~$ sed -i 's/:/ /g' | (read $x)
bash: read: `/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games': not a valid identifier
sed: no input files
~$ sed -i 's/:/ /g' | $(read x)
sed: no input files
~$ sed -i 's/:/ /g' | $(read $x)
bash: read: `/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games': not a valid identifier
sed: no input files
~$ sed -i 's/:/ /g' < $(read $x)
bash: read: `/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games': not a valid identifier
bash: $(read $x): ambiguous redirect
~$ sed -i 's/:/ /g' < read $x
bash: read: No such file or directory
~$ sed -i 's/:/ /g' < (read x)
bash: syntax error near unexpected token `('
~$ sed -i 's/:/ /g' < $((read x))
bash: /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games: syntax error: operand expected (error token is "/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games")
~$ sed -i 's/:/ /g' < $((read $x))
bash: read /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games: division by 0 (error token is "usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games")
~$ sed -i 's/:/ /g' << $((read $x))
> ;^C
~$ sed -i 's/:/ /g' << $(read $x)
> ;^C
~$ sed -i 's/:/ /g' $x
sed: can't read /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games: No such file or directory
~$ sed -i 's/:/ /g' < $x
bash: /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games: No such file or directory
~$ sed -i 's/:/ /g' < echo $x
bash: echo: No such file or directory
~$ sed -i 's/:/ /g' | echo $x
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games
sed: no input files
এটি কি কাজ করতে পারে? আমি কেবল ফাইলগুলি লেখার প্রয়োজন নেই আমার কেবল প্রয়োজন নেই যাতে আমি সেড ব্যবহার করতে পারি। এই নির্দিষ্ট উদাহরণের জন্য, যদি ~$x=$PATH ~$sed -i 's/:/ /g' $x
আমি বাস্তবে আশা করি যেভাবে কাজ করে তবে আমি পেতাম:
/usr/local/sbin /usr/local/bin /usr/sbin /usr/bin /sbin /bin /usr/games /usr/local/games
যা আমি তখন একটি ভেরিয়েবলকে বরাদ্দ করতে এবং ভবিষ্যতের কমান্ডগুলিতে ব্যবহার করতে পারি use ls $x
x=$(echo "$x" | sed 's/:/ /g')
?