我想bash function
在本地(在 MacOS 上)编写一个,因此当我运行这个函数时,第一个命令是通过连接到 ubuntu 远程桌面ssh
。
简而言之:
my_func () {
ssh blah blah blah;
echo $VARIABLE;
}
期望的输出是类似 的东西/home/ubuntu/path/to/directory
,但我什么也没得到。所以我的印象是my_func
只在本地有效。
PS 环境变量$VARIABLE
是在~/.bashrc
远程桌面中设置的。
答案1
如果我理解正确的话这应该可行:
my_func () {
ssh user@ip echo '$VARIABLE'
}
或者如果你有更多命令你可以执行:
my_func () {
ssh user@ip <<'EOF'
echo $VARIABLE
command2
command3
EOF
}
您还可以(我最喜欢执行大量命令)将您的命令放在另一个文件中并执行以下操作:
my_func () {
SOURCE_FILE='/path/to/file'
cat "$SOURCE_FILE" | ssh user@ip
}