首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

在远程ssh命令中传递变量

在远程SSH命令中传递变量,可以使用以下方法:

  1. 使用命令行参数

在远程SSH命令中,可以使用命令行参数来传递变量。例如,如果要传递一个名为MY_VARIABLE的变量,可以使用以下命令:

代码语言:txt
复制
ssh user@remote_host "remote_command" "$MY_VARIABLE"

在远程主机上,可以使用$1$2等变量来访问传递的参数。例如,如果要在远程主机上使用MY_VARIABLE变量,可以使用以下命令:

代码语言:txt
复制
remote_command "$1"
  1. 使用环境变量

在远程SSH命令中,可以使用环境变量来传递变量。例如,如果要传递一个名为MY_VARIABLE的变量,可以使用以下命令:

代码语言:txt
复制
MY_VARIABLE="value" ssh user@remote_host "remote_command"

在远程主机上,可以使用$MY_VARIABLE来访问传递的环境变量。例如,如果要在远程主机上使用MY_VARIABLE变量,可以使用以下命令:

代码语言:txt
复制
remote_command "$MY_VARIABLE"
  1. 使用SSH配置文件

在远程SSH命令中,可以使用SSH配置文件来传递变量。例如,如果要传递一个名为MY_VARIABLE的变量,可以在本地主机上创建一个名为config的SSH配置文件,并在其中添加以下内容:

代码语言:txt
复制
Host remote_host
    User user
    HostName remote_host
    RemoteCommand remote_command
    SendEnv MY_VARIABLE

然后,可以使用以下命令来连接远程主机:

代码语言:txt
复制
MY_VARIABLE="value" ssh remote_host

在远程主机上,可以使用$MY_VARIABLE来访问传递的变量。例如,如果要在远程主机上使用MY_VARIABLE变量,可以使用以下命令:

代码语言:txt
复制
remote_command "$MY_VARIABLE"

总之,在远程SSH命令中传递变量的方法有很多种,可以根据具体的需求和场景选择合适的方法。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

  • makefile 的 ifdef, ifeq 使用及辨析

    #可以用命令行传递变量 RELEASE = abc #ifdef 变量名称不能加$() ifdef RELEASE $(warning RELEASE defined) else $(warning RELEASE not defined) endif #ifeq 后面参数要叫$(), 因为是值引用, 值可以为数值或字符串 ifeq ($(RELEASE),abc) $(warning RELEASE eqal abc) else $(warning RELEASE not equal abc) endif all: @echo ok! ************************************************** make 编译不同版本,例如debug, release 的简单示例。 用make 变量ver, 控制CFLAGS 变量,从而编译出不同版本。 [/pts/2@hjj ~/test]$ cat test.c #include <stdio.h> #include <unistd.h> int main(int argc,char *argv[]) { char *tty=ttyname(0); printf("tty is %s\n",tty); return 0; } [/pts/2@hjj ~/test]$ cat Makefile CC = gcc TARGET = test OBJS = test.o ifeq ($(ver), debug) $(warning ver is debug) CFLAGS = -g -Ddebug else $(warning ver is not debug) CFLAGS = -c -O3 endif $(TARGET): $(OBJS) $(CC) -o $@ $^ clean: rm test test.o 注释: makefile 采用了ifeq-else-endif 结构 可以判别莫个make变量是否定义。 make变量可以在makefile中定义,也可以由make命令行传递。 由于makefile 支持环境变量,所以你预先定义了环境变量,也可以不在命令行中传递而直接使用环境变量 这种机制使得编写脚本控制不同的复杂的编译成为可能, 例如支持各种地域的不同的版本。用地域变量,控制make的编译选项/D,控制编译出不同的版本 ---------------------------------------- 编译debug 版本, 从命令行传递变量 ---------------------------------------- [/pts/2@hjj ~/test]$ make ver=debug Makefile:6: ver is debug gcc -g -Ddebug -c -o test.o test.c gcc -o test test.o ---------------------------------------- 清理,无所谓版本信息 ---------------------------------------- [/pts/2@hjj ~/test]$ make clean Makefile:9: ver is not debug rm test test.o ---------------------------------------- 编译release 版本 ---------------------------------------- [/pts/2@hjj ~/test]$ make Makefile:9: ver is not debug gcc -c -O3 -c -o test.o test.c gcc -o test test.o

    04

    非常好的Ansible入门教程(超简单)

    Ansible是一个配置管理和配置工具,类似于Chef,Puppet或Salt。这是一款很简单也很容易入门的部署工具,它使用SSH连接到服务器并运行配置好的任务,服务器上不用安装任何多余的软件,只需要开启ssh,所有工作都交给client端的ansible负责。 关于Ansible的一个好处是,将bash脚本转换为可执行任务是非常容易的。我们可以编写自己的配置程序,但是Ansible更加干净,因为它可以自动在执行任务之前获取上下文。ansible任务是幂等的,没有大量额外的编码,ansible可以一次又一次地安全运,而bash命令这种幂等性。 ansible使用“facts”来确保任务的幂等安全运行, 它是在运行任务之前收集的系统和环境信息。ansible使用这些facts来检查状态,看看是否需要改变某些东西以获得所需的结果。这使得ansible可以让服务器一次又一次地运行可复制的任务。

    02
    领券