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”。
我正在尝试从以下位置复制文件:~/.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”。