Bash

用於 scp 文件的 Bash 函式不起作用

  • December 21, 2021

我編寫了以下 bash 函式:

function to_company() 
{
   scp ${1} username@long.server.name.company.com://home/username 
}

當我做:

$ to_company code_diff.txt 

它要求輸入密碼,然後失敗並顯示以下消息:

scp: //home/username: not a regular file 

我嘗試在腳本中給出//home/username/&但得到了相同的結果。//home/username/${1}

如果我手動執行上述命令並code_diff.txt代替傳遞${1},則文件傳輸沒有問題。

我犯了什麼錯誤?

沒關係,但遠端路徑應該是/home/username(單個正斜杠)。正如 sputnick 指出的那樣,引用你${1}"${1}".

我已經複製了相同的命令,並且在我測試它時它可以工作,所以我懷疑(考慮到“不是正常文件”錯誤)你在username@long.server.name.company.com:and之間有一個額外的空格//home/username

要嘗試的另一件事是添加調試(通過提供-vscp 命令)並查看是否提供任何線索:

function to_company() 
{
   scp -v "${1}" username@long.server.name.company.com:/home/username 
}

引用自:https://unix.stackexchange.com/questions/86762