আমাকে বলা হয়েছিল এটি সম্ভব ছিল, তবে একক কাজের উদাহরণ 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')?