В моем .bashrc
я определяю функцию, которую я могу использовать в командной строке позже:
function mycommand() {
ssh [email protected] cd testdir;./test.sh "$1"
}
При использовании этой команды на удаленном хосте выполняется только команда cd
; команда test.sh
выполняется на локальном хосте. Это связано с тем, что точка с запятой разделяет две разные команды: команду ssh
и команду test.sh
.
Я попытался определить функцию следующим образом (обратите внимание на одинарные кавычки):
function mycommand() {
ssh [email protected] 'cd testdir;./test.sh "$1"'
}
Я пытался сохранить команду cd
и команду test.sh
вместе, но аргумент $1
не разрешен, независимо от того, что я передаю функции. Он всегда пытается выполнить команду
./test.sh $1
на удаленном хосте.
Как правильно определить mycommand
, поэтому script test.sh
выполняется на удаленном узле после изменения в каталог testdir
, с возможностью передать аргумент, присвоенный mycommand
, на test.sh
?