Команда не работает в скрипте, но работает в оболочке - PullRequest
4 голосов
/ 29 декабря 2010

Я пишу скрипт для использования SSH-профилей, ~ / scripts / ssh-profiled.sh

PROFILE=`cat ~/script/ssh-profiles/$1`
echo [ssh $PROFILE]
ssh $PROFILE

~ / скрипты / SSH-профили / tummi

-i ~/Dropbox/security/key-nopass/key-nopass.pvt bart@example.com

При запуске сценария происходит сбой:

bart@bart-laptop:~$ script/ssh-profiled.sh tummi
[ssh -i ~/Dropbox/security/key-nopass/key-nopass.pvt bart@example.com]
Warning: Identity file ~/Dropbox/security/key-nopass/key-nopass.pvt not accessible: No such file or directory.
bart@example.com's password:

Но это работает:

bart@bart-laptop:~$ ssh -i ~/Dropbox/security/key-nopass/key-nopass.pvt bart@example.com
Linux tummi 2.6.32-24-server #39-Ubuntu SMP Wed Jul 28 06:21:40 UTC 2010 x86_64 GNU/Linux
Ubuntu 10.04.1 LTS

Welcome to the Ubuntu Server!

Есть ли ошибка / ошибка в моем скрипте?

Ответы [ 4 ]

5 голосов
/ 30 декабря 2010

Измените 1-ую строку на

eval PROFILE=`cat ~/script/ssh-profiles/$1`

Для объяснения см. здесь

2 голосов
/ 29 декабря 2010

~ в вашем файле должен быть полный путь к домашней директории, он не раскрывается.

1 голос
/ 29 декабря 2010

Я предполагаю, что "~ /" не интерпретируется, как ожидалось, когда передается таким образом.Попробуйте использовать явный полный путь.

0 голосов
/ 30 декабря 2010

Каковы разрешения для файла .pvt? Если только у вас есть доступ на чтение, и никто не может его выполнить, то ваш скрипт может не увидеть файл. Вот почему вы получаете сообщение "...not accessible: No such file or directory.".

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...