Автор Тема: передача переменной, как параметра ssh в bash-скрипте  (Прочитано 516 раз)

Оффлайн okytam

  • Давно тут
  • **
  • Сообщений: 58
Всем здравствуйте и заранее спасибо.
Мне нужно по ssh запустить некоторый скрипт на сервере и при этом передать ему переменную, скажем, имя файла.
В локальном скрипте мои попытки по-разному этот параметр передать:
#!/bin/bash

read -p "Введите название файла:" ILE

FILE1='$ILE___1'
FILE2='$ILE___2'
FILE3='$ILE___3'
FILE4='$ILE___4'
FILE5='$ILE___5'
FILE6='$ILE___6'

ssh  v@192.168.0.103 "aa FILE1"
ssh  v@192.168.0.103 'aa FILE2'
ssh  v@192.168.0.103  aa FILE3

ssh  v@192.168.0.103 "aa $FILE4"
ssh  v@192.168.0.103 'aa $FILE5'
ssh  v@192.168.0.103  aa $FILE6


Скрипт на сервере называется aa:

#!/bin/bash

AS=/home/v/qwqw/$1.aaa
touch $AS


В итоге, вне зависимости от вводимого имени файла я получаю такой список файлов:

FILE1.aaa
FILE2.aaa
FILE3.aaa
.aaa


то есть прекрасно передаются просто имена, но не параметры

Что изменить?
Спасибо.

Оффлайн asy

  • alt linux team
  • ***
  • Сообщений: 8 104
ssh  v@192.168.0.103 "aa FILE1"А кто сказал, что FILE1 - это переменная? Где $ ?

UPD: увидел дальше варианты. Там тогда надо подумать.
« Последнее редактирование: 10.09.2023 15:09:51 от asy »

Оффлайн okytam

  • Давно тут
  • **
  • Сообщений: 58
Все что начинается с $ не передается вообще и на сервере получается файл .aaa

Оффлайн asy

  • alt linux team
  • ***
  • Сообщений: 8 104
По идее должно работать
ssh  v@192.168.0.103  aa $FILE6

Оффлайн okytam

  • Давно тут
  • **
  • Сообщений: 58
именно с этого я и начинал. Не работает(((

Оффлайн asy

  • alt linux team
  • ***
  • Сообщений: 8 104
Все что начинается с $ не передается вообще и на сервере получается файл .aaa
Без "$" "FILE1" не переменная, а просто строка. Тут без вариантов.

Оффлайн okytam

  • Давно тут
  • **
  • Сообщений: 58
Да это понятно. Первые 3 строки для отработки кавычек)))) - с какими работает

Оффлайн asy

  • alt linux team
  • ***
  • Сообщений: 8 104
Да это понятно. Первые 3 строки для отработки кавычек)))) - с какими работает
Раз из
ssh  v@192.168.0.103  aa FILE3получается FILE3.aaa, то должно и с переменной сработать аналогично. Тогда вопрос: что в этой переменной на момент исполнения?

Оффлайн okytam

  • Давно тут
  • **
  • Сообщений: 58
я тоже так думал, но...
Если у вас есть 2 компа, попробуйте у себя запустить. Вот будет фокус если заработает
Локальный комп у меня alt10k, а "серверок" - alt10ws

Оффлайн okytam

  • Давно тут
  • **
  • Сообщений: 58
Тогда вопрос: что в этой переменной на момент исполнения?
если в локальный скрипт добавить
echo $FILE*
то видно, что в переменной то что надо

Оффлайн okytam

  • Давно тут
  • **
  • Сообщений: 58
пардон, я болван(((
неправильно формировал переменные

ssh  v@192.168.0.103  aa $ILE  - и все заработало

Спасибо)))