Bash
用於 scp 文件的 Bash 函式不起作用
我編寫了以下 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
。要嘗試的另一件事是添加調試(通過提供
-v
scp 命令)並查看是否提供任何線索:function to_company() { scp -v "${1}" username@long.server.name.company.com:/home/username }