Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/18.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_Shell - Fatal编程技术网

Bash $*做什么

Bash $*做什么,bash,shell,Bash,Shell,我试图修改一个没有很好文档记录的shell脚本。我知道基本知识,但这个片段让人困惑 我不确定这条线的作用是什么: time java -showversion -jar ${here_dir}/AESampleTool.jar -f $FILES -d ${output_dir} $* 我不知道$*是什么。谷歌没有太多。上面的行是否将$*设置为它前面的值?脚本中的下一行是$*作为参数传递给名为launch的函数: launch $* 1>$log_file 2>&1 下面

我试图修改一个没有很好文档记录的shell脚本。我知道基本知识,但这个片段让人困惑

我不确定这条线的作用是什么:

time java -showversion -jar ${here_dir}/AESampleTool.jar -f $FILES -d ${output_dir} $*
我不知道$*是什么。谷歌没有太多。上面的行是否将$*设置为它前面的值?脚本中的下一行是$*作为参数传递给名为launch的函数:

launch $* 1>$log_file 2>&1
下面是函数。奇怪的是,它似乎是一个循环引用。函数内部是设置$*的内容,但随后将其作为参数传递给函数本身

function launch {
hset -x
USER=$AEX_USER
l_output_dir=$output_dir
l_here_dir=$here_dir
l_LOGFILE=$LOGFILE
l_FILES=$FILES
l_EXE_JAR=$EXE_SH
l_AEX_LOGDIR=$AEX_LOGDIR
l_AEX_LOGNAME=$AEX_LOGNAME
time java -showversion -jar ${here_dir}/AESampleTool.jar -f $FILES -d ${output_dir} $*
rc=$?
}

$*
表示所有参数,但传递这些参数的方式是错误的,因为如果不加引号(如此处),它将在空白处拆分这些参数,如果加引号,则将它们合并为单个参数。最好使用
“$@”
,这将以空格安全的方式传递它们。

$*
表示所有参数,但传递它们的方式是错误的,因为如果不加引号(如此处),它将在空格上拆分它们,如果加引号,则将它们合并为单个参数。最好使用
“$@”
,这将以空格安全的方式传递它们。

$*
$@
都与shell的所有参数相关,但它们做的事情不同

未被引用时,
$*
$@
做同样的事情。它们将每个单词(非空白序列)视为单独的参数


当引用时,它们是完全不同的
“$*”
将参数列表视为单个空格分隔的字符串,而
“$@”
将参数视为与在命令行上指定时几乎完全相同

$*
$@
都与shell的所有参数相关,但它们做的事情不同

未被引用时,
$*
$@
做同样的事情。它们将每个单词(非空白序列)视为单独的参数


当引用时,它们是完全不同的
“$*”
将参数列表视为单个空格分隔的字符串,而
“$@”
将参数视为与在命令行上指定时几乎完全相同

你试过手册页了吗?检查这个问题:你试过手册页了吗?检查这个问题:好的。。。。shell脚本正在调用launch(),调用它传递的所有参数,而调用java的launch函数中的ine正在将launch()接收到的所有参数传递给java.jar文件?是吗?好的。。。。shell脚本正在调用launch(),调用它传递的所有参数,而调用java的launch函数中的ine正在将launch()接收到的所有参数传递给java.jar文件?是吗?谢谢。我没有写原剧本。不过我会改变的。谢谢。我没有写原剧本。不过我会改变的。