我有通過遠程主機A上的.bashrc文件獲取的函數。 如果我在遠程主機A上使用「which」,我將獲得函數體作爲輸出。 我需要從另一臺主機B通過ssh遠程運行它。 目前,我所有的嘗試都以「命令未找到錯誤」結束。 我已經試過去通過ssh遠程調用shell來源的函數
ssh A "source /home/user/.bashrc && function "
,這沒有幫助。 也嘗試強制ssh以-t鍵來分配僞tty。兩臺主機上的SHELL都是bash。 主機A上的ssh localhost仍然保持可用的功能狀態。
輸出:
[[email protected] ~]$ which status
status is a function
status()
{
dos -s $*
}
[[email protected] ~]$ ssh hostA " source /home/user/deploy/bin/_bashrc && status all "
ls: : No such file or directory
bash: status: command not found
我無法重現這一點。你可以粘貼'ssh set'輸出的相關部分嗎?也就是說,如果'function'在那裏,'SHELL'中有什麼,等等。當你在A上使用ssh localhost,這個問題也會發生嗎? –
完成。答案補充。 –
適用於我(tm)。嘗試將絕對路徑名添加到遠程函數中的所有命令調用中,然後決定是否要指責你的'PATH'。其次,從小開始:定義一個包含最小定義的源文件,例如打印「This is the test function」或類似的測試函數。 – crw