Php 使用;资料来源;获取给出意外输出的变量的命令
我正在设置一个脚本,它使用另一个脚本中的变量 脚本1包含变量 脚本2源于脚本1并输出意外错误 通过GCP安装全新的Debian 9 1.sh 2.sh 运行2.sh,我期望: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
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#