簡體   English   中英

如何檢查遠程計算機上是否存在 bash function

[英]how to check if bash function exist on remote computer

我閱讀了有關類似主題的各種答案,但我仍然無法解決我的問題。 即,在遠程計算機上,我有一個 .bashrc 文件,其中包含一堆自定義功能。 我想檢查該文件中是否存在 function 。 只是要補充一點,該腳本不斷報告遠程計算機上存在指定的 function,即使它不是。 這是我到目前為止所做的:

echo "Enter IP addres of the remote PC [def host@XX.XX.XX.XX]"
read ip
ip=${ip:-host@XX.XX.XX.XX}
    
$(ssh $ip "[ '$(type -t $1)' = function ]")
if [ $? -eq 0 ]; then
  echo "function exist"
else
  echo 'function doesnt exist'
fi

$(...)"引號內局部擴展。研究單引號和雙引號之間的區別。

the_function_you_want_to_check=something
ssh "$ip" '[ "$(type -t "'$the_function_you_want_to_check'")" = function ]' 

不要使用$? . 只是:

if ssh stuff...; then
      echo yes
else
      echo no
fi

感謝您的及時回復。 請注意,$1 實際上是我在本地計算機上運行的 bash 函數的第一個參數。 現在,您建議的更改報告遠程計算機上沒有 function 即使它存在。 我在本地機器上運行的更完整的 function 是:

appendFunction_to_remotePC(){

  echo "Enter the IP addres of the PC [def host@XX.XX.XX.XX]"
  read ip
  ip=${ip:-host@XX.XX.XX.XX}

  if ssh "$ip" '[ "$(type -t "'$1'")" = function ]'; then
    echo yes
  else
    echo no
  fi
      
}

我以通常的方式在本地計算機上調用 function:

$ appendFunction_to_remotePC "test"

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM