Если Вы просто хотите заменить все содержание файла, вместо того, чтобы так или иначе вставить Ваш вывод в середине, то Ваша попытка № 1 может быть ближе к тому, на основе чего Вы хотите, чем подход sed
, если Вы перенаправляете вывод всего цикла:
#!/bin/bash
list_dir=`ls -t downloads/`
for i in $list_dir
do
echo "<a href=\"downloads/$i\">$i</a>"
done > index.html
нет ничего после на строке после ssh-X usr@machene_wehere_i_run_the_code
в вашем коде. Так, чтобы команда вошла в систему на machene_wehere_i_run_the_code
и ничего не сделала.
В примере ssh звонят в принятый ответ вопроса, который вы заключаете в кавычки существует дополнительный параметр:
ssh user@host path_to_script
и path_to_script
отсутствует в вашем.
Я бы попытался поставить аргументы SSH
в двойных цитатах.
ssh usr@machene_wehere_i_run_the_code "/home/run_dir_script/run.sh inp 8"
Также на основе этого сообщения об ошибке звучит как скрипт, не может найти этот скрипт:
/home/run_dir_script/run.sh: line 59: /home/run_dir_script/merge_tabs.s.sh: нет такого файла или каталога
Также я бы заблокировал SCP
, если SSH
не возвращает успешный статус:
ssh usr@machene_wehere_i_run_the_code "/home/run_dir_script/run.sh inp 8"
status=$?
if $status; then
scp -p usr@machene_wehere_i_run_the_code:/home/run_dir_script/results \
user@machine_where_the_resutlst_are_needed:~/
fi
нижняя линейная проблема, хотя и есть проблема с вашим сценарием, расположенным Подчиненные скрипты на удаленной системе. Могут быть переменные, которые устанавливаются при входе в систему и запустите свой скрипт, против входа через SSH
и запустите свой скрипт.
Для них я бы сравнил вывод env
, используя оба метода.