বাশ স্ক্রিপ্ট চলাকালীন "টার্মিনাল প্রক্রিয়া গোষ্ঠী সেট করতে পারে না" ত্রুটি


13

আমার init.el ফাইলে নিম্নলিখিত দুটি লাইন কোড রয়েছে:

(setq shell-file-name "bash")
(setq shell-command-switch "-ic")

শেল স্ক্রিপ্ট dmenu_path ব্যবহার করে এক্সিকিউটেবলের একটি তালিকা পেতে আমি নিম্নলিখিত স্ক্রিপ্টটি কার্যকর করার চেষ্টা করেছি।

(defun dmenu-path-out ()
  (shell-command-to-string "dmenu_path"))

আমি নিম্নলিখিত ত্রুটিটি দেখতে পাচ্ছি:

bash: cannot set terminal process group (-1): Inappropriate ioctl for device
bash: no job control in this shell
[
0ad
...

ব্যাশকে ব্যবহার করার সময় সেই ত্রুটি ফিরে পাওয়া থেকে আমি কীভাবে বাধা দিতে পারি shell-command?


এর সম্ভবত আংশিক প্রতিলিপি প্রশ্ন stackoverflow.com/questions/9670209/... এখনো কোন সমাধান হবে বলে মনে হয় যদি আপনার শেল এর cygwin হয় ব্যাশ
Julio

উত্তর:


10

-iপতাকা অনুরোধ ব্যাশ ইন্টারেক্টিভ মোডে, যা একটি টার্মিনাল প্রয়োজন চালানোর যে। সমাধান ছেড়ে চলে যেতে হয় shell-command-switchতার ডিফল্ট মান, যা শুধু এ পরিবর্তনশীল -c

আপনি কি সত্যিই ইন্টারেক্টিভ মোডে ব্যাশ চালানোর জন্য প্রয়োজন হয়, তাহলে আপনি একটি সিউডো-টার্মিনালে এটি চালানোর জন্য ব্যবহার করে করতে হবে start-file-processসঙ্গে process-connection-typeআবদ্ধ t


এটি আমার পক্ষে কাজ করে না।
দিদিয়ার এ।

এটা আমার জন্য কাজ করে. উদাহরণস্বরূপ, এই কমান্ড লঞ্চ gnome-terminal, রান echoএবং পাতা ব্যাশ অধিবেশন চলমান এবং নতুন কমান্ড নিতে প্রস্তুত: (start-file-process-shell-command "peekaboo" "*Messages*" "gnome-terminal -- bash -c 'echo Peekaboo!; bash'"); এলিসপ কমান্ড থেকে যে কোনও আউটপুট *Messages*বাফারে প্রেরণ করা হয় । নোট করুন যে আমি এর start-file-process-shell-commandপরিবর্তে ব্যবহার করেছি start-file-process, সুতরাং শেল প্রোগ্রামগুলির জন্য আমার পথ দেওয়ার দরকার নেই।
আর্ক স্টান্টন

0

আপনি কি অন্যান্য -iপ্রসারিত করতে বাশ পেতে যোগ করেছেন ? যদি তা হয় তবে /programming/12224909 তে প্রদত্ত হিসাবে এর পরিবর্তে অন্তর্ভুক্ত করুন

(setenv "BASH_ENV" "~/.bashrc")

আপনার .emacs এবং

shopt -s expand_aliases

আপনার .bashrc এ। প্রাক্তন আপনার .bashrcটিকে আপনার সাব-শেলগুলিতে চালিত করার কারণ দেয় এবং পরেরটি নন-লগইন ব্যাশ শেলগুলিতে ওরফে প্রসারিত করতে দেয়।

আপনি আপনার এলিয়াস এবং শপ লাইন দিয়ে আলাদা শেল স্ক্রিপ্ট তৈরি করে এবং এটিকে BASH_ENV মান হিসাবে ব্যবহার করে আরও উন্নত হতে পারেন; এটি আপনার পূর্ণ ~ / .Bashrc এর চেয়ে দ্রুত চলতে পারে।


আপনি কি এখানে বিশদ সংক্ষিপ্ত বিবরণ সংক্ষিপ্ত করতে পারেন? অন্যথায় এটি মূলত একটি লিঙ্ক-কেবল উত্তর এবং তাই মুছে ফেলার ঝুঁকি।
ড্র হয়েছে
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.