কেন এক লাইনে ভেরিয়েবল প্রতিধ্বনিত করতে বাশকে && এর প্রয়োজন হয়?


12

কেন SOMETHING=1 && echo $SOMETHINGপ্রয়োজন &&ফিরতে 1
কেন না SOMETHING=1 echo $SOMETHINGপ্রত্যাবর্তন1


7
বিশেষত গঠনমূলক প্রতিক্রিয়া না রেখে যে কেউ আপনার প্রশ্নকে হ্রাস করেছে তার জন্য লজ্জাজনক। এটি একটি বৈধ প্রশ্ন এবং বাশ শব্দ / পরামিতি / ভেরিয়েবল / টিল্ড সম্প্রসারণ এবং আদেশ আদেশ কার্যকর করার ক্রমটি জটিল। আমি আপনাকে একটি +1 দিচ্ছি।
— স্পিফ


প্রযুক্তিগতভাবে, "প্রতিধ্বনি 1" 0 প্রদান করে এবং আউটপুটটি 1 ... মানে "ইকো" স্থিতি "0" সহ প্রস্থান করে এবং আর্গুমেন্টগুলিকে অবিচ্ছিন্ন করতে প্রদর্শন করে। আমার কাছে "1 ফেরত" বাক্যটি "আউটপুটস" নয়, "বহির্গমন স্টাউস" বোঝাচ্ছে এবং প্রথম নজরে কিছুটা বিভ্রান্ত হয়েছিল।
— মাইকেল

উত্তর:


8

কারণ ব্যাশ ভেরিয়েবল অ্যাসাইনমেন্ট স্টেটমেন্টগুলি ব্যাখ্যা করার আগে ভেরিয়েবল সম্প্রসারণ করে। সুতরাং, যেহেতু কিছু আগে সংজ্ঞায়িত করা হয়নি, আপনার আদেশটি হয়ে যায়…

SOMETHING=1 echo ''

… তাহলে মৃত্যুদন্ড কার্যকর করা হয়।


পরিবর্তনশীল সম্প্রসারণ পরিবর্তনশীল বিকল্প হিসাবে একই?
— জোয়েল

1
@ জোয়েল: সঠিক
— গর্ডন ডেভিসন

0

একই সময়ে রফতানি এবং প্রতিধ্বনি

root@kali:~# echo ${SOMETHING=1}
1
root@kali:~# echo $SOMETHING
1
root@kali:~# unset SOMETHING
root@kali:~# echo $SOMETHING

root@kali:~# echo ${SOMETHING=1}
1
root@kali:~# 

আর একটি বোকা উদাহরণ xD

root@kali:~# echo ${SOMETHING=1} ${PLUS=+} ${SUMTHIN=2} ${EQUALS==} && expr $SOMETHING $PLUS $SUMTHIN
1 + 2 =
3
root@kali:~# 
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.