满意追加50-200分!Linux中shell语句解释。。不懂的已经在代码后注释出来(共3句没看明白)

发布网友 发布时间:2022-04-24 10:01

我来回答

1个回答

热心网友 时间:2023-10-09 16:19

for name [ in word ] ; do list ; done
如果省略in word,for命令会遍历参数"$@", 也就是 $1, $2, ... $n
set命令的参数都被作为位置参数的值赋值,分别赋予$1, $2, ... $n, 也就是"$@"

for file 一行遍历的脚本的参数"$@"

然后set fnord `command`一行修改了"$@"的内容, sed命令执行了四次字符串替换然后打印,将开头的':/'替换为'#',将开头的:删除,将所有的'/'替换为空格,将开头的'#'替换为'/'。
下一行的shift把字符串fnord从"$@"里移除
然后在for d一行遍历新的"$@"。

for file
相当于
for file in "$@"

set fnord `echo ":$file" | sed -ne 's/^:\//#/;s/^://;s/\// /g;s/^#/\//;p'`
shift
pathcomp=
for d
相当于
pathcomp=
for d in `echo ":$file" | sed -ne 's/^:\//#/;s/^://;s/\// /g;s/^#/\//;p'`

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com