Bash Script - в ~/.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
Какие-либо предложения?
Спасибо
2 ответа
Решение
Отмените цитату из тильды в задании sourceFile
так что он расширяется правильно. Расширение тильды не происходит при расширении параметра.
sourceFile=~/".ssh/testfilegen2.log"
(В этом случае кавычки не понадобятся вообще, но только для демонстрации того, что ~
и следующее /
единственные вещи, которые должны остаться без кавычек для расширения тильды.)
Взгляните на этот фрагмент кода:
#!/bin/bash
v1=~/'file1.txt'
v2=~/'file2.txt'
echo 'Hi!' > $v1
cat $v1 > $v2
cat $v2
$ script.sh
Hi!
Документация находится в разделе "Расширение тильды" " Руководства по общим командам BASH".