ডাবল উদ্ধৃতিগুলির ভিতরে থাকা যখন ওজ্ক কাজ করে না


11

এই আদেশটি কাজ করে না:

ssh $HOST "ls -l | awk '{print $1}'"`

উপরের আদেশটি উপেক্ষা করে awk। আমার মনে হয় এটি ডাবল কোটের কারণে হতে পারে?

এছাড়াও, আমি কীভাবে আরএজকের ভিতরে ডাবল উদ্ধৃতিগুলির আরও একটি সেট যুক্ত করব?

অর্থাৎ,

ssh $HOST "awk '{print $1 "*"}' /some_file"

আমি উদ্ধৃতিগুলি পালানোর চেষ্টা করেছি, আমি এমনকি এটি চেষ্টা করেছিলাম:

ssh $HOST "awk '{print $1 "\""*"\""}' /some_file"

সাফল্য ছাড়া.

উত্তর:


19

ভেরিয়েবল ইন্টারপোলেশনটি ডাবল কোটগুলির মধ্যে সঞ্চালিত হয়, সুতরাং আমার মনে হয় যা ঘটতে পারে তা এখানে: আপনি যখন টাইপ করেন তখন ssh $HOST "ls -l | awk '{print $1}'"আপনার শেলটি (আপনার স্থানীয় কম্পিউটারের মধ্যে একটি, যেখানে আপনি এসএসএইচ ক্লায়েন্ট চালাচ্ছেন) $1ডাবল উদ্ধৃতিগুলির মধ্যে দেখতে পায় এবং এটির সাথে প্রতিস্থাপন করে ভেরিয়েবলের মান $1, যা ফাঁকা হবে। এটি সনাক্ত করতে সক্ষম হয় না যে $1ডাবল উদ্ধৃতিগুলির মধ্যে একক উদ্ধৃতিতে বাসা বেঁধেছে। সুতরাং কি রিমোট সার্ভারে প্রেরণ বায়ু আপ হয়

ls -l | awk '{print }'

যা মূলত সমান

ls -l | cat

অর্থাত্ এটি কেবল আউটপুট প্রিন্ট করে ls -l

সমাধান: $ব্যাকস্ল্যাশ দিয়ে পালাতে ,

ssh $HOST "ls -l | awk '{print \$1}'"

হাহা, এত সহজ ছিল! আমি ঠিক এর মধ্য দিয়ে দেখলাম! এটি আমি যা চাইছিলাম ঠিক তাই করেছিল। ssh $ HOST "ls -l | awk '{মুদ্রণ \ $ 1 \" * \ "}'" ধন্যবাদ একটি গুচ্ছ!
নিক
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.