Script স্ক্রিপ্টের মধ্যে থেকে কোনও স্ক্রিপ্ট ফাইল সরানো কি নিরাপদ?


9

ভাবুন আমার কাছে স্ক্রিপ্ট আছে foo। সফল রান করার পরে যখন ব্যবহারকারী লগ ইন করে এবং প্রয়োজন হয় না তখন এটি একবার চালানো উচিত।

আমার প্রশ্ন: স্ক্রিপ্টের মধ্যে থেকে স্ক্রিপ্ট ফাইলটি সরিয়ে ফেলা নিরাপদ?

উদাহরণ:

#!/bin/bash

# do something
...

# if successful
rm /path/to/foo
exit 0

2
পুরোপুরি সম্পর্কহীন নয়, আপনি কিছু #!/bin/bash -eনিশ্চিত না হলে স্ক্রিপ্ট ফাইলটি সরিয়ে ফেলা হয়েছে তা নিশ্চিত করতে ব্যবহার করতে পারেন ।
sr_

3
হ্যাঁ, এটি নিরাপদ। আপনি জানতে চান, কেন পড়তে stackoverflow.com/questions/2028874/...
jofel

2
@ জোফেল ভাল লাগছে, আমি আপনাকে এটির উত্তর দেওয়ার পরামর্শ দিচ্ছি। :-)
হর্টিক

যদি সন্দেহ হয় তবে আপনি শেষ দুটি লাইনটি প্রতিস্থাপন করতে পারেন exec rm /path/to/foo
ক্যাস্পার্ড

উত্তর:


5

এটি চালনার সময় শেল ফাইলটি মুছে ফেলা নিরাপদ, যেহেতু ফাইল হ্যান্ডলারগুলি সংশ্লিষ্ট ফাইলটি পুনরায় সরানোর দ্বারা প্রভাবিত হয় না।

আরও তথ্যের জন্য, এখানে দেখুন


2
শুধু সচেতন এটি কাজ করে না, আপনার সিস্টেম উপর নির্ভর করে (ie হতে পারে হতে rm <it-self>এইচপি-Ux উপর সফল হবে না।
Ouki

1
@ ওকি, কেন? এটি কি পসিক্স লঙ্ঘন করবে না?
ম্যাক্সচলেপজিগ

3
@maxschlepzig POSIX ব্যর্থ unlinkহতে বর্তমানে কার্যকর করা একটি নির্বাহী এর শেষ লিঙ্কটি মুছে ফেলার অনুমতি দেয়: এতে ব্যর্থ হতে পারে ETXTBUSY। (অদ্ভুতভাবে, "বিশুদ্ধ পদ্ধতি" এবং "ভাগ করা পাঠ্য" বর্ণনায় সংজ্ঞায়িত করা হয়নি; এএফএইকি এর অর্থ একটি এক্সিকিউটেবল প্রোগ্রামের উপাদান: এক্সিকিউটেবল নিজেই বা এটি ব্যবহার করে এমন একটি গ্রন্থাগার)। এইচপি-ইউএক্স ব্যতীত অন্য সমস্ত বড় ইউনিট এক্সিকিউটেবলকে নাম পরিবর্তন ও আন-লিঙ্ক করার অনুমতি দেয়।
গিলস 'অশুভ হওয়া বন্ধ করুন'

2
@ ওকি এটি দিয়ে স্ক্রিপ্টটি কেবল শেষ করেই সহজেই পৌঁছানো উচিত exec rm /path/to/foo
ক্যাস্পার্ড

0

আমি সর্বদা এ সম্পর্কে নার্ভাস থাকি তাই করেছি:

(sleep 5; rm /path/to/shell/script) &
exit 0

পর্যায়ক্রমে আপনি একটি অস্থায়ী স্ক্রিপ্টে চেইন করতে পারেন:

echo >/tmp/rmme rm /path/to/shell/script
. /tmp/rmme

1
আপনার উভয় প্রস্তাবিত পদ্ধতির মধ্যে এখনও একটি শেল প্রক্রিয়া থাকবে যা মুছে ফেলার সাথে সাথে স্ক্রিপ্টটি সম্পাদন শেষ করে নি।
ক্যাস্পার্ড

আপনি যা করতে চান তা হ'লexec rm /path/to/shell/script
osvein
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.