在同一行中定义shell变量会传递给(java)进程,但不会在不同的行中
因此,根据,进程不继承shell变量 所以这个过程不应该看到变量A和B:在同一行中定义shell变量会传递给(java)进程,但不会在不同的行中,java,bash,shell,environment-variables,Java,Bash,Shell,Environment Variables,因此,根据,进程不继承shell变量 所以这个过程不应该看到变量A和B: A=X B=Y java -cp blah ... 这一切都是有意义的,直到您看到它们在同一行上定义时被传递: A=X \ B=Y \ java -cp blah ... 这是特定于Java(可能是内部读取命令行)还是所有*nix进程的?将事物转换为单个行将其转换为单个进程调用。换句话说:你基本上是在说:整体评估这个表达式;表达式从这两个定义开始。将事物转换为单个行将其转换为单个进程调用。换句话说:你基本上是在说:整体
A=X
B=Y
java -cp blah ...
这一切都是有意义的,直到您看到它们在同一行上定义时被传递:
A=X \
B=Y \
java -cp blah ...
这是特定于Java(可能是内部读取命令行)还是所有*nix进程的?将事物转换为单个行将其转换为单个进程调用。换句话说:你基本上是在说:整体评估这个表达式;表达式从这两个定义开始。将事物转换为单个行将其转换为单个进程调用。换句话说:你基本上是在说:整体评估这个表达式;表达式从这两个定义开始。它不是java特有的,而是posix外壳语法规则。 当变量在同一行上时,它的赋值在命令之前。而在不同的行上,子进程只有在导出时才能看到它们
If it begins with '=', the token WORD shall be returned.
If all the characters preceding '=' form a valid name (see the Base Definitions volume of IEEE Std 1003.1-2001, Section 3.230, Name),
应返回令牌分配\u字。(不能使用带引号的字符。)
参与形成有效名称。)
它不是特定于java的,而是posix shell语法规则。 当变量在同一行上时,它的赋值在命令之前。而在不同的行上,子进程只有在导出时才能看到它们
If it begins with '=', the token WORD shall be returned.
If all the characters preceding '=' form a valid name (see the Base Definitions volume of IEEE Std 1003.1-2001, Section 3.230, Name),
应返回令牌分配\u字。(不能使用带引号的字符。)
参与形成有效名称。)
这是否意味着如果这些命令被放在一个shell脚本中,然后shell脚本本身被执行,那么它应该是正确的?@Aliostad看起来像是其他人更快-|@阿利奥斯塔德。。。谢谢有趣的问题是,这是否意味着如果这些命令放在一个shell脚本中,然后shell脚本本身就被执行了,这应该是正确的呢?@Aliostad看起来像是其他人更快了-|@阿利奥斯塔德。。。谢谢有趣的问题显然是更好的答案。由于我今天接近每日极限,我倾向于保持我的;至少今天;-)@nahuel fouilleul那么,如果在调用可执行文件之前或之后定义它,会有区别吗?显然,这是更好的答案。由于我今天接近每日极限,我倾向于保持我的;至少今天;-)@nahuel fouilleul那么,如果在调用可执行文件之前或之后定义它,会有区别吗?