Php 使用;资料来源;获取给出意外输出的变量的命令

Php 使用;资料来源;获取给出意外输出的变量的命令,php,bash,debian,Php,Bash,Debian,我正在设置一个脚本,它使用另一个脚本中的变量 脚本1包含变量 脚本2源于脚本1并输出意外错误 通过GCP安装全新的Debian 9 1.sh 2.sh 运行2.sh,我期望: test test2 test3 但我收到: 1.sh: line 2: 1=test: command not found 1.sh: line 3: 2=test2: command not found 1.sh: line 4: 3=test3: command not found #empty line# #em

我正在设置一个脚本,它使用另一个脚本中的变量

脚本1包含变量

脚本2源于脚本1并输出意外错误

通过GCP安装全新的Debian 9

1.sh

2.sh

运行2.sh,我期望:

test
test2
test3
但我收到:

1.sh: line 2: 1=test: command not found
1.sh: line 3: 2=test2: command not found
1.sh: line 4: 3=test3: command not found
#empty line#
#empty line#
#empty line#
告诉我bash变量就是这样声明的


我如何解决这个问题

1
2
3
都是无效的变量名<代码>$1etc用于访问传递给脚本的参数,但它们不能像普通变量一样分配给其他变量。尝试使用类似于
var1=“test”
等的方法

此外,我建议在2.sh的开头添加一行shebang(例如
#!/bin/bash
#!/usr/bin/env bash
)。这对于1.sh来说并不重要,因为
source
ing脚本并不关注shebang行

哦,我忘了另一件事:当你使用一个变量(或参数,或任何东西)时,你几乎应该总是在它周围加上双引号(例如,使用
echo“$var1”
,而不仅仅是
echo$var1
)。当您使用不带双引号的变量时,shell将尝试以更可能导致麻烦而不是帮助的方式对其进行解析


最后一点:特别是当你刚开始的时候,试着把你的脚本粘贴到——它能很好地发现常见的脚本错误,并能在它们变成坏习惯之前指出它们。

1
2
3
都不是有效的变量名<代码>$1etc用于访问传递给脚本的参数,但它们不能像普通变量一样分配给其他变量。尝试使用类似于
var1=“test”
等的方法

此外,我建议在2.sh的开头添加一行shebang(例如
#!/bin/bash
#!/usr/bin/env bash
)。这对于1.sh来说并不重要,因为
source
ing脚本并不关注shebang行

哦,我忘了另一件事:当你使用一个变量(或参数,或任何东西)时,你几乎应该总是在它周围加上双引号(例如,使用
echo“$var1”
,而不仅仅是
echo$var1
)。当您使用不带双引号的变量时,shell将尝试以更可能导致麻烦而不是帮助的方式对其进行解析


最后:特别是当你刚开始的时候,试着把你的脚本粘贴到其中——它能很好地发现常见的脚本错误,并能在它们变成坏习惯之前指出它们。

你是一个传奇。你是一个传奇。但链接取决于以这种方式分配变量名的方式。您是否曾经在bash中手动尝试过
1=“test”
?您还将得到一个“未找到命令”错误。您不能像这样设置位置参数。但是链接取决于变量名以这种方式分配时的外观。您是否曾经在bash中手动尝试过
1=“test”
?您还将得到一个“未找到命令”错误。不能像这样设置位置参数。
test
test2
test3
1.sh: line 2: 1=test: command not found
1.sh: line 3: 2=test2: command not found
1.sh: line 4: 3=test3: command not found
#empty line#
#empty line#
#empty line#