您的位置:首页 > 健康 > 美食 > 做一个网站放网上要多少钱_诸暨网络推广_长沙seo霜天_百度搜索排名怎么收费

做一个网站放网上要多少钱_诸暨网络推广_长沙seo霜天_百度搜索排名怎么收费

2025/4/16 21:46:02 来源:https://blog.csdn.net/weixin_43416590/article/details/145662916  浏览:    关键词:做一个网站放网上要多少钱_诸暨网络推广_长沙seo霜天_百度搜索排名怎么收费
做一个网站放网上要多少钱_诸暨网络推广_长沙seo霜天_百度搜索排名怎么收费

在Udig软件的启动脚本中使用了while循环if语句for循环,其他内容基本都是变量的定义,所以尝试弄懂脚本中这三部分内容,了解脚本执行过程。

(1)while循环

while do循环内容如下所示,在循环中还用了expr命令和正则表达式等内容,解析符号链接来找到程序的实际路径。符号链接(Symbolic Link),也称为软链接(Soft Link),是一种特殊的文件类型,它指向另一个文件或目录,类似于Windows系统中的快捷方式。

while [ -h "$PRG" ]; dols=`ls -ld "$PRG"`link=`expr "$ls" : '.*-> \(.*\)$'`if expr "$link" : '/.*' > /dev/null; thenPRG="$link"elsePRG=`dirname "$PRG"`/"$link"fi
done

while do循环的基本结构如下所示,可以看到与python 直接简单的 while 条件: 循环体内命令 这种结构还是有一些差别。上面代码中,条件是指 -h "$PRG",这个指令用于判断变量$PRG所指向的文件是否是一个符号链接,其中**-h是一个测试运算符,专门用于检查文件是否为符号链接。这里使用了测试条件表达式**,在之后进行测试条件表达式的学习。

while [ 条件 ]; 
do# 循环体内的命令
done

循环体内循环了大量的命令,使用ls -ld命令列出了$PRG的详细信息,-d表示只列出$PRG本身的信息,而不是其内容;第二句使用expr命令结合正则表达式$ls中提取符号链接指向的目标路径。正则表达式'.*-> \(.*\)$'的含义是:匹配以 -> 结尾的字符串,并提取其后面的部分,即符号链接的目标路径,然后将其赋值给变量link。这里使用了正则表达式,在之后进行正则表达式的学习。

	ls=`ls -ld "$PRG"`link=`expr "$ls" : '.*-> \(.*\)$'`if expr "$link" : '/.*' > /dev/null; thenPRG="$link"elsePRG=`dirname "$PRG"`/"$link"fi

在循环中还嵌套另一个if判断语句。上面的第三句代码判断$link是否是一个绝对路径,其中expr "$link" : '/.*'会尝试匹配以/开头的字符串,如果匹配成功,说明$link是一个绝对路径。> /dev/null的作用是将expr命令的输出重定向到/dev/null,因为只关心匹配是否成功,而不关心输出内容。在 Linux 系统中,/dev/null 是一个特殊的文件,它没有任何数据,起着丢弃数据的作用,用于一些忽略输出或者输入的场合。 如果$link是一个绝对路径,就直接将$link赋值给$PRG,这样$PRG就更新为符号链接的实际目标路径。否则的话,dirname "$PRG"会获取$PRG所在的目录路径,然后将其与$link拼接起来,得到完整的绝对路径,并赋值给`$PRG。

(2)for循环

for循环语句遍历命令行参数,并检查其中是否有-data参数。如果有,则将变量DATA_ARG设置为true。这里的$@是一个特殊变量,它包含了脚本接收到的所有命令行参数,而每个参数会被当作一个单独的元素,依次赋值给变量ARG。这里的for循环内部又嵌套了一个if语句,用于检查当前的参数$ARG是否等于-data。其中,**[ $ARG = "-data" ]是一个测试条件表达式,用于比较$ARG和字符串-data是否相等,使用了=运算符进行字符串比较;而then DATA_ARG=true; fi**表示如果$ARG等于-data,则将变量DATA_ARG设置为true

for ARG in $@ 
doif [ $ARG = "-data" ]; then DATA_ARG=true; fi
done

for循环的基本结构如下所示:

for 变量 in 值1 值n
do# 命令
done

(3)if语句

if语句内容如下所示,其用来根据变量$DATA_ARG的值来决定执行不同的命令。第一句是用来检查变量$DATA_ARG的值,如果$DATA_ARG的值是一个非空字符串且真值,则条件为真,执行then部分的代码;如果$DATA_ARG的值为空字符串或被视为假值,则条件为假,执行else部分的代码。then部分的代码中,$PRGDIR是一个变量,表示程序所在的目录路径;$UDIGEXEC也是一个变量,表示要执行的程序名称,这两个变量组合起来形成完整的命令路径;**$@接收到的所有命令行参数会传递给$PRGDIR/$UDIGEXEC命令。else部分代码中,添加了-data ~/uDigWorkspace**传递给命令的一个额外参数,表示指定数据目录为~/uDigWorkspace

if $DATA_ARG; then $PRGDIR/$UDIGEXEC $@
else$PRGDIR/$UDIGEXEC -data ~/uDigWorkspace $@
fi

if 循环的基本结构如下所示:

if 条件
then# 命令1
else# 命令2
fi

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com