Bash 脚本 - ~/.ssh/ 中不存在文件

Bash Script - No file exist in ~/.ssh/

我正在尝试从以下位置复制文件:~/.ssh/ 但每次我 运行 脚本它一直在说

pi@raspberrypi:/etc/greenwich $ ./copybash.sh
cat: ~/.ssh/testfilegen2.log: No such file or directory

copybash.sh

!/bin/bash
sourceFile="~/.ssh/testfilegen2.log"
targetFile="/etc/network/interfaces2"
sudo cat "$sourceFile" > "$targetFile"
sudo service networking restart

有什么建议吗?

谢谢

取消对 sourceFile 作业中波浪号的引号,以便其正确扩展。参数扩展时不会发生波浪号扩展。

sourceFile=~/".ssh/testfilegen2.log"

(在这种情况下,根本不需要引号,只是为了证明 ~ 和后面的 / 是唯一需要保持不加引号的波浪符号扩展到发生。)

看看这段代码:

#!/bin/bash
v1=~/'file1.txt'
v2=~/'file2.txt'
echo 'Hi!' > $v1 
cat $v1 > $v2
cat $v2

$ script.sh
Hi!

文档在 "Tilde Expansion" 部分 的“General Commands Manual BASH”。