В моем .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?