Linux Shell脚本无法识别声明的变量

Linux Shell脚本无法识别声明的变量,linux,django,shell,sh,openvpn,Linux,Django,Shell,Sh,Openvpn,我得到了一个包含4个变量的shell脚本。到目前为止还不错: #!/bin/bash echo keygeneration $1 $2 >> /tmp/logfile touch /home/ubuntu/newproject/static/$1 KEY_NAME=$1 KEY_CN=$1 sh pkitool 这真的没什么复杂的。。。我有一个Django应用程序,它告诉用户输入用户名($1)和密码($2)。当我使用PKI工具并给这两个变量KEY_NAME和KEY_CA一个内

我得到了一个包含4个变量的shell脚本。到目前为止还不错:

#!/bin/bash

echo keygeneration $1 $2 >> /tmp/logfile
touch /home/ubuntu/newproject/static/$1

KEY_NAME=$1
KEY_CN=$1

sh pkitool
这真的没什么复杂的。。。我有一个Django应用程序,它告诉用户输入用户名($1)和密码($2)。当我使用PKI工具并给这两个变量KEY_NAME和KEY_CA一个内容时,它就工作了。。。当我在网站上输入用户名和密码时,脚本甚至会保存变量的内容并将其保存在/static中。当我传递2个变量时,我甚至可以在shell中执行脚本本身。。。。看起来是这样的:

sh keygen.sh FooUsername BarPassword

唯一不起作用的是,当我在应用程序中键入用户名和密码时,它不会正确执行PKI工具,并且没有声明两个变量KEY\u NAME=$1和KEY\u CN=$1。。但这很奇怪,因为它确实节省了变量$1,尽管在静态Oo中,你们能告诉我这是如何实现的吗?

你们需要导出变量,让子进程拾取它们:

export KEY_NAME=$1
export KEY_CN=$2

您需要导出变量,以便子流程提取它们:

export KEY_NAME=$1
export KEY_CN=$2

应该是
KEY\u CN=$2
?应该是
KEY\u CN=$2
?所以,我是个愚蠢的狗…^^你的回答当然是正确的我的程序不能正常工作的原因是另一个。。。“去你的linux根”!不过谢谢你:)所以,我是一只愚蠢的狗…^^你的回答当然是正确的我的程序不能正常工作的原因是另一个。。。“去你的linux根”!不过,谢谢:)