Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/16.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 输出变量?(猛击)_Bash - Fatal编程技术网

Bash 输出变量?(猛击)

Bash 输出变量?(猛击),bash,Bash,我试着把一个变量放到一行,然后放到一个文件中 代码如下所示: echo "cd ~/Desktop/BukkitServer/" >> start.command echo "java -Xms$ramM -Xmx$ramM -jar CraftBukkit.jar" >> start.command chmod +x start.command 看到我怎么把$ram放在第二行了吗?结果是 java -XmsM -XmxM -jar CraftBukkit.jar 我

我试着把一个变量放到一行,然后放到一个文件中

代码如下所示:

echo "cd ~/Desktop/BukkitServer/" >> start.command
echo "java -Xms$ramM -Xmx$ramM -jar CraftBukkit.jar" >> start.command
chmod +x start.command
看到我怎么把$ram放在第二行了吗?结果是

java -XmsM -XmxM -jar CraftBukkit.jar
我如何让它把$ram放在适当的位置

谢谢:)

编辑:

echo'java-Xms{$ram}M-Xmx{$ram}M-jarcraftbukkit.jar'>>start.command

生成
java-Xms{$ram}M-Xmx{$ram}M-jar craftbukkit.jar

echo“java-Xms{$ram}M-Xmx{$ram}M-jar craftbukkit.jar”>>start.command


生成
java-Xms{120}M-Xmx{120}M-jar craftbukkit.jar

$
用于标记变量。通过您的命令,您告诉echo在文件中放置
java-Xms
,后跟
$ramM
变量的内容

您必须为变量定义一个值

ram=128
echo "java -Xms${ram}M"
将产生

java -Xms128M
请注意,必须使用括号
{}
来分隔变量名,否则shell将不知道变量的结束位置

如果您想输入一个literal
$
,则必须使用单引号(shell不会解释字符串的内容)

产生

java -Xms$ramM

$
用于标记变量。通过您的命令,您告诉echo在文件中放置
java-Xms
,后跟
$ramM
变量的内容

您必须为变量定义一个值

ram=128
echo "java -Xms${ram}M"
将产生

java -Xms128M
请注意,必须使用括号
{}
来分隔变量名,否则shell将不知道变量的结束位置

如果您想输入一个literal
$
,则必须使用单引号(shell不会解释字符串的内容)

产生

java -Xms$ramM

将第二行更改为:


echo'java-Xms'$ram'M-Xmx'$ram'M-jar CraftBukkit.jar'>>start.command
将第二行更改为:


echo'java-Xms'$ram'M-Xmx'$ram'M-jar CraftBukkit.jar'>>start.command

啊,谢谢。我已经定义了$ram,但不知道{}。唯一的问题是现在数字周围有括号。比如:
java-Xms{200}M-Xmx{200}M-jar craftbukkit.jar
你把{}放在哪里了?请用新版本编辑您的问题(将其添加到末尾,保留原始版本,否则将很难理解“啊啊啊啊啊啊啊啊,我刚刚意识到我把$放在括号中了。谢谢xDAh,谢谢。我已经定义了$ram,但不知道{}。现在唯一的问题是数字周围有括号。如:
java-Xms{200}M-Xmx{200}M-jar craftbukkit.jar
你把{}放在哪里了?请用新版本编辑你的问题(在末尾添加,保留原来的版本,否则很难理解)啊,我刚刚意识到我把$放在了括号里。感谢XD,这将产生与OP已经得到的完全相同的输出(
java-XmsM-XmxM-jar-CraftBukkit.jar
)@matteo NO!!输出会很好。虽然这不是你的优雅方式。在本例中,整个表达式被分成4个子字符串,最终输出是4个子字符串的串联。这将产生与OP已经得到的完全相同的输出(
java-XmsM-xmxmxm-jar-CraftBukkit.jar
)@matteo NO!!输出就可以了。虽然这不是你做事情的优雅方式。在这种情况下,整个表达式被分成4个子字符串,最终输出是4个子字符串的串联。