Ubuntu
Bash 函式掛起,而命令在沒有功能的情況下完美執行
以下功能掛起:
ssh() { local RESULTS; RESULTS=$(ssh $USERNAME@$SERVER $SSH_COMMAND1); echo $RESULTS; } ssh;
而如果我執行以下命令,它們可以正常工作:
RESULTS=$(ssh $USERNAME@$SERVER $SSH_COMMAND1); echo $RESULTS;
有人可以指導我尋找錯誤的正確方向嗎?
你有一個遞歸錯誤。您定義一個名為“ssh”的函式,然後在您的函式中呼叫相同的函式。這導致遞歸循環。
指定
ssh
二進製文件的絕對路徑,這應該可以修復它。
我只是犯了同樣的錯誤。我認為您還可以使用該
command
命令來執行與函式同名的命令(二進製文件本身),以避免硬編碼二進製文件的路徑:ssh() { local RESULTS; RESULTS=$(command ssh $USERNAME@$SERVER $SSH_COMMAND1); echo $RESULTS; }
儘管對於您在這裡所做的事情,我確實建議以不同的方式命名該函式;
ssh
是一個非常常見的命令,沒有人會期望以這種方式表現!