Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/webpack/2.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/multithreading/4.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
zsh-迭代脚本中使用参数匹配的文件_Zsh - Fatal编程技术网

zsh-迭代脚本中使用参数匹配的文件

zsh-迭代脚本中使用参数匹配的文件,zsh,Zsh,我在zsh shell中正确地执行了以下代码: for f in ./A*.html; do; echo $f; done 输出 ./Aliasing.html ./Alternate-Forms-For-Complex-Commands.html ./Alternative-Completion.html ./Arguments.html ./Arithmetic-Evaluation.html ./Arithmetic-Expansion.html ./Array-Parameters.h

我在zsh shell中正确地执行了以下代码:

for f in ./A*.html; do; echo $f; done
输出

./Aliasing.html
./Alternate-Forms-For-Complex-Commands.html
./Alternative-Completion.html
./Arguments.html
./Arithmetic-Evaluation.html
./Arithmetic-Expansion.html
./Array-Parameters.html
./Author.html
./Availability.html
./Aliasing.html
但是,当我使用此代码,但在zsh函数中发送匹配字符串(./a*.html)作为参数时,它将只显示第一个文件

脚本:

displayy() {
for f in $1; do; echo $f; done
}
命令:

%displayy ./A*.html
输出

./Aliasing.html
./Alternate-Forms-For-Complex-Commands.html
./Alternative-Completion.html
./Arguments.html
./Arithmetic-Evaluation.html
./Arithmetic-Expansion.html
./Array-Parameters.html
./Author.html
./Availability.html
./Aliasing.html

我更希望打印出与在shell中执行for循环时相同的文件(第一个示例)。知道我做错了什么吗?Grazie

display./A*.html命令的问题是,
*
在传递给
dispayy
函数之前由zsh展开。实际上,您的命令如下所示:

$ displayy ./Aliasing.html ./Alternate-Forms-For-Complex-Commands.html  ...
然后在
display
中只打印第一个参数:
/Aliasing.html

解决此问题的最简单方法是更改
display
定义中的一个字符(
1
=>
@
):

displayy() {
for f in "$@"; do; echo "$f"; done
}

循环的这种迭代方式会遍历所有
display
参数。此外,我建议在变量周围加双引号,这是一个好习惯,即使在本例中,文件名中没有空格。

display./a*.html命令的问题是,
*
在传递给
dispay
函数之前由zsh展开。实际上,您的命令如下所示:

$ displayy ./Aliasing.html ./Alternate-Forms-For-Complex-Commands.html  ...
然后在
display
中只打印第一个参数:
/Aliasing.html

解决此问题的最简单方法是更改
display
定义中的一个字符(
1
=>
@
):

displayy() {
for f in "$@"; do; echo "$f"; done
}

循环的这种迭代方式会遍历所有
display
参数。此外,我建议在变量周围加双引号,这是一个好习惯,即使在本例中,文件名中没有空格。

display./a*.html命令的问题是,
*
在传递给
dispay
函数之前由zsh展开。实际上,您的命令如下所示:

$ displayy ./Aliasing.html ./Alternate-Forms-For-Complex-Commands.html  ...
然后在
display
中只打印第一个参数:
/Aliasing.html

解决此问题的最简单方法是更改
display
定义中的一个字符(
1
=>
@
):

displayy() {
for f in "$@"; do; echo "$f"; done
}

循环的这种迭代方式会遍历所有
display
参数。此外,我建议在变量周围加双引号,这是一个好习惯,即使在本例中,文件名中没有空格。

display./a*.html命令的问题是,
*
在传递给
dispay
函数之前由zsh展开。实际上,您的命令如下所示:

$ displayy ./Aliasing.html ./Alternate-Forms-For-Complex-Commands.html  ...
然后在
display
中只打印第一个参数:
/Aliasing.html

解决此问题的最简单方法是更改
display
定义中的一个字符(
1
=>
@
):

displayy() {
for f in "$@"; do; echo "$f"; done
}

循环的这种迭代方式会遍历所有
display
参数。此外,我建议在变量周围加双引号,这是一个好习惯,即使在本例中,文件名中没有空格。

感谢您分享此信息。这很有帮助,现在脚本开始工作了。我很感激。祝您今天愉快,先生。:)请注意,在
zsh
中,
$@
“$@”
在默认设置下是相同的。感谢您共享此信息。这很有帮助,现在脚本开始工作了。我很感激。祝您今天愉快,先生。:)请注意,在
zsh
中,
$@
“$@”
在默认设置下是相同的。感谢您共享此信息。这很有帮助,现在脚本开始工作了。我很感激。祝您今天愉快,先生。:)请注意,在
zsh
中,
$@
“$@”
在默认设置下是相同的。感谢您共享此信息。这很有帮助,现在脚本开始工作了。我很感激。祝您今天愉快,先生。:)请注意,在
zsh
中,
$@
“$@”
在默认设置下是相同的。