আমার tmux.conf এর কয়েকটি লাইন রয়েছে যা আমি কেবলমাত্র আমার ওএস ম্যাক হলে সম্পাদন করতে চাই। তবে, আমি আমার tmux.conf একাধিক ভিন্ন ওএস এর ব্যবহার করতে চাই। বর্তমানে টিএমউক্স যে ওএসে চলছে সেটির জন্য আমি কীভাবে শর্তসাপেক্ষে একটি কমান্ড করব?
আমার tmux.conf এর কয়েকটি লাইন রয়েছে যা আমি কেবলমাত্র আমার ওএস ম্যাক হলে সম্পাদন করতে চাই। তবে, আমি আমার tmux.conf একাধিক ভিন্ন ওএস এর ব্যবহার করতে চাই। বর্তমানে টিএমউক্স যে ওএসে চলছে সেটির জন্য আমি কীভাবে শর্তসাপেক্ষে একটি কমান্ড করব?
উত্তর:
if-shellকমান্ডটি ব্যবহার করুন :
if-shell "uname | grep -q Darwin" "tmux-cmd1; tmux-cmd2;" "tmux-cmd3; tmux-cmd4"
আপনি আলাদা ফাইলগুলিতে ওএস-নির্দিষ্ট কমান্ড রাখতে চান এবং "উত্স-ফাইল" কমান্ডের মাধ্যমে এগুলি সম্পাদন করতে পারেন।
if-shell "uname | grep -q Darwin" "source-file .tmux-macosx" "source-file .tmux-linux"
if-shellএবং run-shell tmux কমান্ড (হিসাবে বর্তমানে অ্যাসিঙ্ক্রোনাস হয় tmux 1.7); তারা কার্যকরভাবে তাদের শেল কমান্ডটি ব্যাকগ্রাউন্ডে চালায়, এবং যে কোনও টিএমউक्स কমান্ডগুলি চালিত হয় কেবল সেগুলি আদেশ বা কমান্ডের পরে উপস্থিত কোনও আদেশের পরে কার্যকর করা হবে ( tmux একক থ্রেডযুক্ত )। কার্যকরভাবে, আপনি যদি ব্যবহার করেন বা থাকেন তবে প্রাথমিক সেশন (এবং যে কোনও সেশন, উইন্ডো বা প্যানগুলি স্পষ্টরূপে তৈরি করা হয়েছে ) কোনও আদেশ বা কমান্ডের মাধ্যমে সজ্জিত tmux কনফিগারেশনের অভাব করবে । if-shellrun-shellif-shellrun-shell~/.tmux.conf~/tmux.confif-shellrun-shell
if-shellআমার জন্য tmux 1.8 দিয়ে প্রত্যাশা অনুযায়ী কাজ করেছেন। আমি এটি কেবল এসএসএইচের
জিমাহ https://github.com/jimeh/dotfiles/commit/3838db8 এর উত্তর রয়েছে। এছাড়াও ক্রিস জনসন এখানে গিটহাব ইস্যুতে লোকদের সহায়তা করার জন্য অনেক কৃতিত্বের দাবিদার: https://Github.com/ChrisJohnsen/tmux-MacOSX-pasteboard/issues/8#issuecomment-4134987
মূলত, আপনি একটি শেল স্ক্রিপ্ট সেট আপ safe-reattach-to-user-namespaceকরেছিলেন যা প্রকৃত পুনঃনির্ধারণের ... অধ্যায়ের অস্তিত্বের জন্য পরীক্ষা করে।
#! /usr/bin/env bash
# If reattach-to-user-namespace is not available, just run the command.
if [ -n "$(command -v reattach-to-user-namespace)" ]; then
reattach-to-user-namespace $@
else
exec "$@"
fi