Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Bash 在unix aix中将变量从一个脚本传递到另一个脚本_Bash_Shell_Unix_Sh_Aix - Fatal编程技术网

Bash 在unix aix中将变量从一个脚本传递到另一个脚本

Bash 在unix aix中将变量从一个脚本传递到另一个脚本,bash,shell,unix,sh,aix,Bash,Shell,Unix,Sh,Aix,我将变量从一个shell脚本传递到另一个shell脚本,该脚本正在另一个远程服务器上执行 脚本1 echo "Identification No." read id export id ssh atul@10.95.276.286 'bash -s' < data_file.sh 通过这种方式,即使第二个脚本中的id也为null,我也无法获得任何输出 我也试过了 ssh atul@10.95.276.286 'bash -s' < data_file.sh "$id" sshat

我将变量从一个shell脚本传递到另一个shell脚本,该脚本正在另一个远程服务器上执行

脚本1

echo "Identification No."
read id
export id
ssh atul@10.95.276.286 'bash -s' < data_file.sh
通过这种方式,即使第二个脚本中的id也为null,我也无法获得任何输出

我也试过了

ssh atul@10.95.276.286 'bash -s' < data_file.sh "$id"
sshatul@10.95.276.286“bash-s”
但没有产出


在此方面的任何帮助都将不胜感激。我正在使用unix AIX。

在一台主机上导出
绝对不会影响完全不同的主机。。。它甚至不会影响当前主机上运行的另一个shell

如果脚本正在检查位置参数,那么您的第二次尝试会更好,甚至可能会起作用,但事实并非如此。(在这种情况下它甚至可能不起作用,因为我根本不确定命令行参数是否能够通过
ssh
bash-s
传递到脚本

您可能可以执行以下操作:

ssh atul@10.95.276.286 "bash -s $id" < data_file.sh
sshatul@10.95.276.286“bash-s$id”

要将参数直接传递给远程
bash
,脚本仍需要使用位置参数,并且不希望命名变量已经存在。

导出不会对远程脚本的环境产生任何影响。 您可以通过在实际命令之前在命令行上指定env变量来设置远程脚本的环境,顺便说一句,您也可以在本地命令中使用env变量

 ssh atul@10.95.276.286 "id=$id bash -s" < data_file.sh
sshatul@10.95.276.286“id=$id bash-s”
如果以这种方式传递“$id”:

 ssh atul@10.95.276.286 'bash -s' < data_file.sh "$id"
sshatul@10.95.276.286“bash-s”
它将是脚本的第一个参数,也就是“$1”,您可以通过这种方式从脚本访问它

请注意,“脚本2”中的
“|$id |”
将被解释为文本字符串,因为您使用的是单引号

 ssh atul@10.95.276.286 'bash -s' < data_file.sh "$id"