এই বিবেচনা:
$ ssh localhost bash -c 'export foo=bar'
terdon@localhost's password:
declare -x DBUS_SESSION_BUS_ADDRESS="unix:path=/run/user/1000/bus"
declare -x HOME="/home/terdon"
declare -x LOGNAME="terdon"
declare -x MAIL="/var/spool/mail/terdon"
declare -x OLDPWD
declare -x PATH="/usr/bin:/bin:/usr/sbin:/sbin"
declare -x PWD="/home/terdon"
declare -x SHELL="/bin/bash"
declare -x SHLVL="2"
declare -x SSH_CLIENT="::1 55858 22"
declare -x SSH_CONNECTION="::1 55858 ::1 22"
declare -x USER="terdon"
declare -x XDG_RUNTIME_DIR="/run/user/1000"
declare -x XDG_SESSION_ID="c5"
declare -x _="/usr/bin/bash"
কেন bash -cসেশনের মধ্যে একটি চলক রফতানি করে ssh এর মাধ্যমে চালানো declare -xকমান্ডের তালিকার (বর্তমানে রফতানি হওয়া ভেরিয়েবলের তালিকা, যতদূর আমি বলতে পারি) ফলাফল তৈরি করে?
এটি না bash -cকরে একই জিনিস চালানো :
$ ssh localhost 'export foo=bar'
terdon@localhost's password:
$
আমরা না করলে তাও হয় না export:
$ ssh localhost bash -c 'foo=bar'
terdon@localhost's password:
$
আমি এটি একটি উবুন্টু মেশিন থেকে অন্যটিতে (উভয় চলমান বাশ ৪.৩.১১) এবং একটি আর্চ মেশিনে ছুঁড়ে দিয়ে পরীক্ষা করেছি, উপরের মত বর্ণিতভাবে নিজের দিকে ঝাঁকুনি দিয়েছি (বাশ সংস্করণ ৪.৪.৫)
এখানে কি হচ্ছে? bash -cকলটির অভ্যন্তরে কোনও পরিবর্তনশীল রফতানি করলে এই আউটপুটটি কেন উত্পাদিত হয়?
export, আমি কী ঘটছে তা বোঝার চেষ্টা করছি। আমি পরিষ্কার করতে সম্পাদনা করব যে রফতানির সময় কেবল এটি ঘটে।
exportএকা চালানোর আউটপুট ? আমি বুঝতে পারি নি যে।
foo=barতালিকায় প্রদর্শিত হবে না।
export। Zsh একই জিনিস করে।