انڈروئد

بش ہیرڈوک

ئەو ڤیدیۆی بوویە هۆی تۆبە کردنی زۆر گەنج

ئەو ڤیدیۆی بوویە هۆی تۆبە کردنی زۆر گەنج

فہرست کا خانہ:

Anonim

شیل اسکرپٹ لکھتے وقت آپ اس صورتحال میں ہوسکتے ہیں جہاں آپ کو انٹرایکٹو کمانڈ ، جیسے tee ، cat ، یا ایس ایف tee کو متنی متن یا کوڈ کو منتقل کرنے کی ضرورت ہوگی۔

بش اور دوسرے خولوں جیسے زیش میں ، یہاں دستاویز (ہیریڈوک) ایک ایسی سمت ہے جس کی مدد سے آپ کمانڈ میں متعدد لائنوں کو ان پٹ منتقل کرسکتے ہیں۔

ہیر ڈوک تحریر کرنے کا نحو مندرجہ ذیل شکل اختیار کرتا ہے۔

<< 'DELIMITER' HERE-DOCUMENT DELIMITER

  • پہلی سطر اختیاری کمانڈ کے ساتھ شروع ہوتی ہے جس کے بعد اسپیشل ری ڈائریکشن آپریٹر << اور حد بندی کرنے والا شناخت کنندہ ہوتا ہے۔
    • آپ کسی بھی تار کو ایک حد بندی کرنے والے شناخت کار کے طور پر استعمال کرسکتے ہیں ، سب سے زیادہ عام طور پر استعمال EF یا اختتام پذیر ہوتے ہیں۔ ری ڈائریکشن آپریٹر <<- تک منفی علامت ، تمام ٹیب حروف کو نظرانداز کرنے کا سبب بنے گی۔ یہ آپ کو شیل اسکرپٹ میں دستاویزات لکھتے وقت انڈیٹیشن استعمال کرنے کی سہولت دیتا ہے۔ معروف سفید فام حروف کی اجازت نہیں ہے ، صرف ٹیب۔
    یہاں-دستاویز کے بلاک میں ڈور ، متغیر ، کمانڈ اور کسی بھی طرح کی ان پٹ شامل ہوسکتی ہے۔ آخری لائن حد بندی شناخت کنندہ کے ساتھ ختم ہوتی ہے۔ ڈیلییمٹر کے سامنے سفید جگہ کی اجازت نہیں ہے۔

بنیادی ہیراڈوک مثالوں

اس حصے میں ، ہم کچھ بنیادی مثالوں پر نگاہ ڈالیں گے کہ کس طرح ہیرڈوک کا استعمال کیا جائے۔

ہیرڈوک اکثر بلی کمانڈ کے ساتھ مل کر استعمال ہوتا ہے۔

مندرجہ ذیل مثال میں ، ہم متن کی دو لائنیں گزر رہے ہیں جس میں ماحولیاتی متغیر ہے اور یہاں دستاویز کا استعمال کرتے ہوئے cat کو کمانڈ دیا گیا ہے۔

cat << EOF The current working directory is: $PWD You are logged in as: $(whoami) EOF

جیسا کہ آپ نیچے آؤٹ پٹ سے دیکھ سکتے ہیں ، متغیر اور کمانڈ آؤٹ پٹ دونوں متبادل ہیں:

The current working directory is: /home/linuxize You are logged in as: linuxize

آئیے دیکھتے ہیں کہ اگر ہم ایک یا ڈبل ​​قیمتوں میں حد بندی کو بند کردیں تو کیا ہوگا۔

cat <<- "EOF" The current working directory is: $PWD You are logged in as: $(whoami) EOF

آپ محسوس کرسکتے ہیں کہ جب ڈیلیمٹر کا حوالہ دیا جاتا ہے تو شیل کے ذریعہ پیرامیٹر میں توسیع اور کمانڈ متبادل نہیں ہوتا ہے۔

The current working directory is: $PWD You are logged in as: $(whoami)

if true; then cat <<- EOF Line with a leading tab. EOF fi

Line with a leading tab.

اسکرین پر آؤٹ پٹ کو ظاہر کرنے کے بجائے آپ اسے >> آپریٹرز کا استعمال کرتے ہوئے کسی فائل میں ری ڈائریکٹ کرسکتے ہیں۔

cat << EOF > file.txt The current working directory is: $PWD You are logged in as: $(whoami) EOF

اگر file.txt موجود نہیں ہے تو یہ بن جائے گی۔ استعمال کرتے وقت > فائل کو اوور رائٹ کر دیا جائے گا ، جبکہ >> فائل کو آؤٹ پٹ شامل کریں گے۔

ہیراڈوک ان پٹ بھی پائپ کیا جا سکتا ہے۔ مندرجہ ذیل مثال میں sed کمانڈ l کردار کے تمام واقعات کو e ساتھ بدل دے گا۔

cat <<'EOF' | sed 's/l/e/g' Hello World EOF

Heeeo Wored

کسی فائل میں پائپڈ ڈیٹا لکھنے کے لئے:

cat <<'EOF' | sed 's/l/e/g' > file.txt Hello World EOF

ایس ایس ایچ کے ساتھ ہیرڈوک کا استعمال کرنا

ہیرڈوک کا استعمال ایس ایس ایچ سے دور دراز کے نظام پر متعدد کمانڈز پر عملدرآمد کرنے کا ایک آسان اور آسان ترین طریقہ ہے۔

غیر منقولہ حد بندی کا استعمال کرتے وقت اس بات کو یقینی بنائیں کہ آپ تمام متغیرات ، احکامات اور خصوصی حروف سے بچ جائیں بصورت دیگر وہ مقامی طور پر بازی بن جائیں گے۔

ssh -T [email protected] << EOF echo "The current local working directory is: $PWD" echo "The current remote working directory is: \$PWD" EOF

The current local working directory is: /home/linuxize The current remote working directory is: /home/user

آپ ایس ایس ایچ کی کلیدی پر مبنی توثیق بھی مرتب کرنا چاہتے ہیں اور پاس ورڈ داخل کیے بغیر اپنے لینکس سرورز سے رابطہ قائم کرسکتے ہیں۔

نتیجہ اخذ کرنا

اس گائیڈ میں ، آپ نے یہ سیکھا ہے کہ heredoc کیا ہے اور اسے اپنے شیل اسکرپٹس میں کیسے استعمال کیا جائے۔

بش ٹرمینل