当前位置: 首页 > news >正文

网站开发外包维护合同范本开发小程序模板

网站开发外包维护合同范本,开发小程序模板,舟山手机网站建设,jquery 显示wordpress深入探讨常见Linux Shell之间的语法转换 一、引言二、Linux常用Shell#xff1a;Bash、Zsh、Ksh、Csh、Tcsh和Fish的简介2.1、Bash、Zsh、Ksh、Csh、Tcsh和Fish的特点和用途2.2、语法差异是常见Shell之间的主要区别 三、变量和环境设置的语法差异3.1、变量定义和使用的不同语法… 深入探讨常见Linux Shell之间的语法转换 一、引言二、Linux常用ShellBash、Zsh、Ksh、Csh、Tcsh和Fish的简介2.1、Bash、Zsh、Ksh、Csh、Tcsh和Fish的特点和用途2.2、语法差异是常见Shell之间的主要区别 三、变量和环境设置的语法差异3.1、变量定义和使用的不同语法3.2、环境变量的设置和读取方式的差异 四、条件语句和循环语句的差异4.1、if-else语句的不同写法和用法4.2、for和while循环的语法差异 五、命令执行和管道操作的区别5.1、命令替换的不同方式5.2、管道操作符的使用差异和转换方法 六、其他常见语法差异的分析6.1|字符串处理和替换的语法区别6.2、函数定义和调用的差异 七、语法转换示例八、Shell之间的通用语法转换技巧8.1、使用Shell独立的语法特性8.2、使用辅助工具进行语法转换8.3、实例演示不同Shell之间的语法转换 总结 博主简介 一个热爱分享高性能服务器后台开发知识的博主目标是通过理论与代码实践的结合让世界上看似难以掌握的技术变得易于理解与掌握。技能涵盖了多个领域包括C/C、Linux、Nginx、MySQL、Redis、fastdfs、kafka、Docker、TCP/IP、协程、DPDK等。 ️ CSDN实力新星、CSDN博客专家、华为云云享专家、阿里云专家博主 一、引言 Shell是一种命令行解释器它在操作系统和用户之间提供了一个交互式的接口。它可以让用户通过输入命令来与操作系统进行交互执行各种任务和操作。 Shell的应用 系统管理和自动化通过编写Shell脚本可以方便地管理和自动化各种系统管理任务如文件管理、进程控制、定时任务等。Shell脚本可以批量执行一系列命令减少了手动操作的工作量并实现了系统管理的高效性和可重复性。 程序开发和调试Shell脚本可以用作快速地编写小型程序和脚本用于快速实现一些简单的任务和功能。它可以作为程序开发过程中的测试工具和调试工具通过脚本执行和输出的信息识别问题并进行修复。 系统配置和环境设置Shell脚本可以用于系统配置和环境设置如安装软件、配置网络、设置环境变量等。通过Shell脚本可以方便地一次性完成各种配置和设置操作提高了系统配置的效率和准确性。 数据处理和分析Shell脚本提供了各种强大的文本处理工具和管道操作可以快速处理和分析文本数据。它可以实现文件的搜索、过滤、排序和统计等功能帮助用户处理大量的数据和实现数据分析的需求。 不同的Linux Shell如Bash、Zsh、Csh和Fish等在语法方面存在一些差异主要是因为它们采用了不同的设计理念和语法规则。这些差异在编写Shell脚本或在命令行中使用不同的Shell时可能会引起困惑和问题。因此有必要了解并探讨不同Linux Shell之间的语法差异并学习如何进行语法转换的方法。 在不同的Linux系统或服务器上可能会安装不同的Shell解释器。如果Shell脚本或命令在一个Shell上能够运行但在另一个Shell上却无法正常工作那么了解语法差异并进行相应调整就变得至关重要。 在多平台开发环境中不同开发人员可能使用不同的Shell。为了保持一致性和可维护性需要确保脚本在不同的Shell上都能够正确运行。通过了解语法差异并进行相应转换可以确保代码在不同Shell之间的可移植性。 不同的Shell在功能和特性方面可能存在差异。例如某些Shell可能具有更强大的文本处理工具或更灵活的变量处理方式。 如果一个Shell的语法和用法需要在另一个Shell上工作了解语法差异并进行转换可以减少学习和适应新Shell的时间和成本。 了解不同Linux Shell之间的语法差异以及进行语法转换的必要性是为了增强脚本的可移植性、提高开发效率、降低学习曲线和确保代码的兼容性。这对于Shell脚本开发者和系统管理员来说都非常重要可以更好地应对不同Shell环境下的工作和需求。 二、Linux常用ShellBash、Zsh、Ksh、Csh、Tcsh和Fish的简介 2.1、Bash、Zsh、Ksh、Csh、Tcsh和Fish的特点和用途 BashBourne Again ShellBash是最常见和广泛使用的Shell它是Bourne Shell的增强版本。Bash兼容大多数的Bourne Shell语法并且提供了一些扩展功能如命令历史记录、命令补全和作业控制。它在Linux和Unix系统中被广泛用于系统管理、脚本编写和命令行交互。 ZshZ ShellZsh是一个功能强大且高度可定制的Shell。它具有更先进的命令补全、别名扩展、文件名扩展和主题定制等特性。Zsh还提供了更好的交互式体验和可定制性通常被高级用户和开发人员用于日常使用和脚本编写。 KshKorn ShellKsh是由ATT Bell实验室开发的一个强大的Shell。它继承了Bourne Shell和C Shell的特性并添加了一些自己的扩展功能如命令别名、编辑命令行和作业控制。Ksh在Unix系统中使用较为广泛特别是在商业环境中。 CshC ShellCsh以C语言风格的语法为基础提供了类似C语言的控制流程和命令别名功能。Csh在BSD系统中较为常见但不建议将其用于脚本编写因为其语法较为复杂且与其他Shell不兼容。 TcshTENEX C ShellTcsh是Csh的扩展版本添加了命令补全、命令别名和命令历史记录等功能。它在某些Unix系统中作为默认Shell但与其他Shell兼容性有限。 FishFriendly Interactive ShellFish是一个广受欢迎的交互式Shell具有更简单易用的语法、自动完成和语法高亮等特性。Fish设计旨在提供更好的用户体验和易用性它在日常交互式使用中非常受欢迎。 Bash通常是最常见的选择适用于大多数任务。Zsh和Fish提供了更先进的功能和用户体验适合经验丰富的用户和开发人员。Ksh和Csh在某些特定的Unix环境中较为常见可用于脚本编写和系统管理。最后Tcsh提供了类似Csh的功能并添加了一些扩展特性。 2.2、语法差异是常见Shell之间的主要区别 常见ShellBash、Zsh、Ksh、Csh、Tcsh和Fish之间的主要区别确实在于它们的语法差异。例如 变量赋值和引用 Bash、Zsh和Ksh使用符号进行变量赋值。Csh和Tcsh使用set命令进行变量赋值。Fish使用符号进行变量赋值但不需要使用特殊字符来引用变量。 数组 Bash中的数组用(和)来定义和访问例如array(1 2 3)和${array[0]}。Zsh和Ksh使用相同的语法来定义和访问数组。Csh和Tcsh不直接支持数组但可以使用类似于数组的数据结构来存储和访问数据。Fish不支持传统意义上的数组但可以使用命名的列表来模拟。 命令替换 Bash、Zsh、Ksh和Tcsh使用$(command)或command反引号来进行命令替换。Csh使用 反引号来进行命令替换。 通配符 Bash、Zsh、Ksh和Tcsh支持类似的通配符语法如*和?。Csh使用不同的通配符语法如*和?。Fish使用一种不同的通配符语法如*、?和[abc]。 控制结构 Bash、Zsh、Ksh和Tcsh使用类似的语法来定义条件语句if、else、elif和fi和循环语句for、while、until等。Csh使用不同的语法来定义条件语句if、then、else和endif和循环语句foreach和end。Fish使用基于缩进的语法来定义条件语句和循环语句。 三、变量和环境设置的语法差异 3.1、变量定义和使用的不同语法 常见ShellBash、Zsh、Ksh、Csh、Tcsh和Fish中变量定义和使用的不同语法 Bash 变量定义使用符号进行变量赋值例如variablevalue。变量引用使用$符号引用变量例如echo $variable。 Zsh 变量定义与Bash相同使用符号进行变量赋值例如variablevalue。变量引用与Bash相同使用$符号引用变量例如echo $variable。 Ksh 变量定义与Bash和Zsh相同使用符号进行变量赋值例如variablevalue。变量引用与Bash和Zsh相同使用$符号引用变量例如echo $variable。 Csh 变量定义使用set命令进行变量赋值例如set variablevalue。变量引用使用$variable进行变量引用例如echo $variable。 Tcsh 变量定义与Csh相同使用set命令进行变量赋值例如set variablevalue。变量引用与Csh相同使用$variable进行变量引用例如echo $variable。 Fish 变量定义使用符号进行变量赋值例如set variable value。变量引用在Fish中不需要使用特殊字符来引用变量直接使用变量名即可例如echo $variable。 3.2、环境变量的设置和读取方式的差异 常见ShellBash、Zsh、Ksh、Csh、Tcsh和Fish在设置和读取环境变量方面有一些差异。 Bash 设置环境变量使用export命令将变量设置为环境变量例如export VARIABLE_NAMEvalue。读取环境变量使用$符号引用环境变量例如echo $VARIABLE_NAME。 Zsh 设置环境变量与Bash相同使用export命令将变量设置为环境变量例如export VARIABLE_NAMEvalue。读取环境变量与Bash相同使用$符号引用环境变量例如echo $VARIABLE_NAME。 Ksh 设置环境变量与Bash和Zsh相同使用export命令将变量设置为环境变量例如export VARIABLE_NAMEvalue。读取环境变量与Bash和Zsh相同使用$符号引用环境变量例如echo $VARIABLE_NAME。 Csh 设置环境变量使用setenv命令设置环境变量例如setenv VARIABLE_NAME value。读取环境变量使用$variable引用环境变量例如echo $VARIABLE_NAME。 Tcsh 设置环境变量与Csh相同使用setenv命令设置环境变量例如setenv VARIABLE_NAME value。读取环境变量与Csh相同使用$variable引用环境变量例如echo $VARIABLE_NAME。 Fish 设置环境变量使用set -x命令将变量设置为环境变量例如set -x VARIABLE_NAME value。读取环境变量在Fish中环境变量自动被设置为全局变量无需特定语法直接使用变量名即可例如echo $VARIABLE_NAME。 四、条件语句和循环语句的差异 4.1、if-else语句的不同写法和用法 常见ShellBash、Zsh、Ksh、Csh、Tcsh和Fish中的if-else语句有一些差异。以下是它们之间的主要区别 Bash、Zsh、KshBourne Shell风格 单行if-else语句if [ condition ]; then COMMANDS; else COMMANDS; fi多行if-else语句if [ condition ]; thenCOMMANDS elif [ condition ]; thenCOMMANDS elseCOMMANDS ficondition可以是条件表达式例如$variable -eq value或者通过test命令进行判断例如-z $variable。COMMANDS指代if条件为真时要执行的命令。 Csh、TcshC Shell风格 单行if-else语句if (condition) COMMANDS; else COMMANDS多行if-else语句if (condition) thenCOMMANDS else if (condition) thenCOMMANDS elseCOMMANDS endifcondition可以是条件表达式例如$variable value。 Fish 单行if-else语句if condition; COMMANDS; else; COMMANDS; end多行if-else语句if conditionCOMMANDS else if conditionCOMMANDS elseCOMMANDS endcondition可以是条件表达式例如$variable value。 4.2、for和while循环的语法差异 常见ShellBash、Zsh、Ksh、Csh、Tcsh和Fish中的for和while循环在语法上有一些差异。 Bash、Zsh、KshBourne Shell风格 for循环语法for variable in list; doCOMMANDS donewhile循环语法while [ condition ]; doCOMMANDS donevariable是一个临时变量用于迭代list中的元素。list是一个包含要迭代的元素的列表或范围。condition是一个用于控制循环执行的条件可以是条件表达式或命令的退出状态。 Csh、TcshC Shell风格 for循环语法foreach variable (list)COMMANDS endwhile循环语法while (condition)COMMANDS endvariable是一个临时变量用于迭代list中的元素。list是一个包含要迭代的元素的列表。condition是一个用于控制循环执行的条件可以是条件表达式。 Fish for循环语法for variable in listCOMMANDS endwhile循环语法while conditionCOMMANDS endvariable是一个临时变量用于迭代list中的元素。list是一个包含要迭代的元素的列表。condition是一个用于控制循环执行的条件可以是条件表达式。 五、命令执行和管道操作的区别 5.1、命令替换的不同方式 常见ShellBash、Zsh、Ksh、Csh、Tcsh和Fish中有几种不同的方式可以进行命令替换。 Bash、Zsh、KshBourne Shell风格 使用反引号backticks进行命令替换variablecommand使用$()进行命令替换推荐使用这种方式variable$(command)这两种方式都可以将command的输出结果赋值给variable。 Csh、TcshC Shell风格 使用反引号backticks进行命令替换set variable command使用!符号进行命令替换set variable !command这两种方式都可以将command的输出结果赋值给variable。 Fish 使用命令替换操作符进行命令替换set variable (command)这种方式将command的输出结果赋值给variable。 除了命令替换还有其他一些技术可以在Shell脚本中捕获命令的输出结果如使用重定向操作符将输出写入文件或使用管道|将输出传递给其他命令进行处理。 5.2、管道操作符的使用差异和转换方法 常见的ShellBash、Zsh、Ksh、Csh、Tcsh和Fish在管道操作符|的使用上有一些差异。 Bash、Zsh、KshBourne Shell风格 管道操作符可以将一个命令的输出作为另一个命令的输入。例如下面的命令将command1的输出作为command2的输入command1 | command2Csh、TcshC Shell风格 管道操作符在Csh和Tcsh中与Bash等不同使用大于号代替竖杠|。例如下面的命令将command1的输出写入command2的输入command1 command2Fish Fish Shell仍然使用竖杠|作为管道操作符与Bash等Shell一致。 除了管道操作符之外不同的Shell还可能有其他特殊的操作符和功能如Bash的进程替换(command)和(command)等。 如果需要将一个Shell脚本从一种Shell转换为另一种Shell可能需要对管道操作符进行相应的调整。一种通用的方法是使用条件语句来检测当前使用的Shell并根据Shell类型使用相应的操作符。可以使用$SHELL环境变量来获取当前Shell的类型。例如在Bash脚本中可以使用以下方式进行转换 #!/bin/bashif [ $SHELL /bin/csh ] || [ $SHELL /bin/tcsh ]; then# 转换为Csh/Tcsh风格的管道操作符command1 command2 else# Bash/Zsh/Ksh/Fish风格的管道操作符command1 | command2 fi六、其他常见语法差异的分析 6.1|字符串处理和替换的语法区别 常见的ShellBash、Zsh、Ksh、Csh、Tcsh和Fish在字符串处理和替换的语法上有一些区别。 Bash、Zsh、KshBourne Shell风格 字符串替换操作可以使用一对花括号{}或双引号“”来包裹字符串并使用$符号来引用变量。替换模式可以是简单的字符串也可以使用正则表达式。使用花括号进行替换操作匹配第一个匹配项${variable/pattern/replacement}使用双引号进行替换操作匹配所有匹配项${variable//pattern/replacement}例如在Bash中将字符串中的foo替换为barreplaced${string/foo/bar}Bash还支持其他更高级的字符串处理操作如提取子串、大小写转换等。 Csh、TcshC Shell风格 字符串替换操作可以使用一对圆括号()或双引号“”来包裹字符串并使用!符号来引用变量。替换模式可以是简单的字符串但不支持正则表达式。使用圆括号进行替换操作匹配第一个匹配项set variable ($variable:patternreplacement)使用双引号进行替换操作匹配所有匹配项set variable ($variable:pattern:replacement)例如在Csh中将字符串中的foo替换为barset replaced ($string:foobar)Csh和Tcsh的字符串处理功能相对较弱通常不如Bash等Shell。 Fish Fish Shell的字符串处理和替换语法与Bash、Zsh、Ksh类似使用一对花括号{}或双引号“”来包裹字符串并使用$符号来引用变量。使用花括号进行替换操作只匹配第一个匹配项set variable (string replace -r pattern replacement $variable)使用双引号进行替换操作匹配所有匹配项set variable (string replace -ra pattern replacement $variable)例如在Fish中将字符串中的foo替换为barset replaced (string replace -ra foo bar $string)Fish Shell对字符串处理的支持比Csh和Tcsh更丰富但仍可能比Bash等Shell略有不足。 除了字符串替换之外不同的Shell还可能支持其他字符串处理操作如拼接、截取、大小写转换等。 6.2、函数定义和调用的差异 在常见的ShellBash、Zsh、Ksh、Csh、Tcsh和Fish中函数定义和调用的语法有一些差异。 Bash、Zsh、KshBourne Shell风格 函数定义使用关键字function或直接使用函数名同时函数体需要使用花括号{}括起来。函数定义的语法function function_name {commands }函数调用时无需使用括号直接使用函数名加上参数即可。函数调用的语法function_name argumentsCsh、TcshC Shell风格 函数定义使用关键字alias加上函数名和函数体并使用双引号“”或没有引号包裹函数体。函数定义的语法alias function_name commands函数调用时无需使用括号直接使用函数名加上参数即可。函数调用的语法function_name arguments在Bash、Zsh、Ksh和Csh包括Tcsh中函数定义和调用比较相似。然而Bash、Zsh和Ksh更为通用而Csh和Tcsh在脚本编写中用得较少。 Fish Fish Shell的函数定义使用关键字function或直接使用函数名同时函数体需要使用花括号{}括起来。函数定义的语法function function_namecommands end函数调用时无需使用括号直接使用函数名加上参数即可。函数调用的语法function_name arguments除了函数定义和调用的差异不同的Shell还可能对于函数的参数传递、返回值等方面有其他细微的区别。 七、语法转换示例 使用条件语句或函数检测可以帮助我们适应不同的Shell特性和行为。以下是一些示例 使用条件语句检测Shell类型 在Bash、Zsh、Ksh中if [[ -n $BASH_VERSION ]]; then# Bash特定的代码 elif [[ -n $ZSH_VERSION ]]; then# Zsh特定的代码 elif [[ -n $KSH_VERSION ]]; then# Ksh特定的代码 else# 默认代码 fi在Csh、Tcsh中if ($?BASH_VERSION) then# Bash特定的代码 else if ($?ZSH_VERSION) then# Zsh特定的代码 else if ($?KSH_VERSION) then# Ksh特定的代码 else# 默认代码 endif在Fish中if set -q BASH_VERSION# Bash特定的代码 else if set -q ZSH_VERSION# Zsh特定的代码 else if set -q KSH_VERSION# Ksh特定的代码 else# 默认代码 end使用函数检测和适应不同的Shell特性 在Bash、Zsh、Ksh中可以定义函数# 检测是否为交互式Shell is_interactive_shell() {case $- in*i*) return 0 ;;*) return 1 ;;esac }# 使用函数 if is_interactive_shell; then# 适应交互式Shell特性的代码 else# 适应非交互式Shell特性的代码 fi在Csh、Tcsh中可以使用$prompt变量来检测是否为交互式Shell# 使用变量 if ($prompt) then# 适应交互式Shell特性的代码 else# 适应非交互式Shell特性的代码 endif在Fish中可以使用-t或isatty函数来检测是否为交互式Shell# 使用函数 if isatty -t 0; then# 适应交互式Shell特性的代码 else# 适应非交互式Shell特性的代码 end通过使用条件语句或函数检测可以根据不同的Shell特性和行为来编写具有一致性和可移植性的脚本。 八、Shell之间的通用语法转换技巧 8.1、使用Shell独立的语法特性 在不同的Shell如Bash、Zsh、Ksh、Csh、Tcsh和Fish之间进行通用语法转换时可以使用以下基于Shell独立的语法特性的技巧 条件语句 使用if和fi作为条件语句的开始和结束。使用test命令或[ ]进行条件判断避免使用特定于某个Shell的判断符号如[[ ]]。 循环语句 使用for和end或done作为循环语句的开始和结束。使用$variable表示变量避免使用特定于某个Shell的变量展开符号如${variable}。 变量赋值 使用variablevalue进行变量赋值避免使用特定于某个Shell的赋值语法如set variable value或variablevalue。 输出和重定向 使用echo命令输出文本避免使用特定于某个Shell的输出命令如printCsh 和 Tcsh或echo -eBash。使用和进行输出重定向避免使用特定于某个Shell的重定向符号如Bash或Csh 和 Tcsh。 字符串操作 使用$variable引用变量值避免使用特定于某个Shell的引用语法如${variable}。使用$variable或${variable}进行字符串替换和拼接避免使用特定于某个Shell的操作符如$[ ]或字符串拼接符号。 当进行通用语法转换时需要注意以下方面 每个Shell可能有不同的内置命令、环境变量和特殊变量。确保目标Shell支持所使用的命令和变量。在进行转换之前最好对每个Shell的语法和特性有一定的了解。为了确保脚本的可移植性在编写脚本时尽量避免特定于某个Shell的特性和命令。 8.2、使用辅助工具进行语法转换 如果需要在常见Shell如Bash、Zsh、Ksh、Csh、Tcsh和Fish之间进行语法转换可以使用一些辅助工具来帮助自动处理转换过程。以下是一些常用的辅助工具 ShellCheckhttps://www.shellcheck.net/ShellCheck是一个静态分析工具用于检查并提供针对Shell脚本的建议和警告。它可以帮助你发现和修复脚本中的语法错误和潜在问题。 shfmthttps://github.com/mvdan/shshfmt是一个Shell语法格式化工具用于自动格式化和调整Shell脚本的风格。它支持多种常见的Shell类型并可以将脚本从一种Shell语法转换为另一种。 ShellSpechttps://shellspec.info/ShellSpec是一个针对Shell脚本的测试框架它提供了一套强大的断言和测试功能可用于编写和执行Shell脚本的单元测试。这可以帮助在进行语法转换时验证结果的正确性。 使用这些辅助工具可以提高Shell脚本转换的效率和准确性。可根据工具的文档和指南进行安装和使用。 8.3、实例演示不同Shell之间的语法转换 下面的示例将展示如何将一些常见的Shell语法转换为不同的ShellBash、Zsh、Ksh、Csh、Tcsh和Fish。 基本的条件判断语句 Bash/Zsh/Ksh/Csh/Tcsh:if [ $var -eq 10 ]; thenecho Variable is equal to 10 fiFish:if test $var -eq 10echo Variable is equal to 10 end循环语句 Bash/Zsh/Ksh:for i in {1..5}; doecho $i doneCsh/Tcsh:foreach i (1 2 3 4 5)echo $i endFish:for i in (seq 1 5)echo $i end命令替换 Bash/Zsh/Ksh:result$(command)Csh/Tcsh:set result commandFish:set result (command)函数定义与调用 Bash/Zsh/Ksh/Csh:myfunc() {# function bodyecho Hello, World! }myfunc # 调用函数Tcsh:alias myfunc echo Hello, World!myfunc # 调用函数Fish:function myfunc# function bodyecho Hello, World! endmyfunc # 调用函数总结 总结一些常见的Shell语法差异和转换要点如下 条件语句 在条件判断语句中Shell之间的主要差异在于方括号的使用和参数展开。其中Bash、Zsh、Ksh和Csh/Tcsh在条件判断时使用方括号而Fish则使用test或者使用命令替换作为条件判断。当使用方括号时要注意在变量或参数周围使用引号。注意不同Shell中的比较操作符和字符串处理方式的差异。 循环语句 不同Shell之间的循环语法有所不同。Bash、Zsh和Ksh支持使用for循环和C风格的for循环。而Csh/Tcsh使用foreach循环。Fish则使用for循环和seq命令。注意在不同Shell中遍历列表或范围的语法不同。 命令替换 不同Shell之间的命令替换语法也有所不同。Bash、Zsh和Ksh使用$()或反引号来进行命令替换。Csh/Tcsh使用反引号。Fish使用圆括号。 函数定义与调用 Bash、Zsh、Ksh和Csh/Tcsh使用function关键字或仅使用函数名来定义函数。Fish则使用function关键字。在调用函数时语法也有所不同。某些Shell使用函数名后跟空括号而另一些Shell则直接使用函数名。 环境变量 不同Shell之间可能具有不同的环境变量设置和访问方式。使用通用的环境变量而避免依赖特定于某个Shell的环境变量。
http://www.tj-hxxt.cn/news/140418.html

相关文章:

  • 营销网站建设网络公司如何管理wordpress网站模板
  • 在什么网站上做外贸flash网站案例
  • 做网站换服务器怎么整什么是营销网络
  • 网站整合营销等服务网站备案 代理
  • 流媒体网站开发教程黄页网站推广公司
  • 济南网站建设xywlcn宁波正规站内优化seo
  • 注册账号自建网站语音网站怎么做
  • 免费WAP建导航网站网站怎么推广效果最好
  • 百度seo排名优化公司wordpress后台优化
  • 一起做网店一样的网站wordpress清理过期文件夹
  • 企业网站网站建设电话云服务器费用
  • 营销型网站建设有哪些平台深圳网络推广培训学校
  • 企业网站的建立如何带来询盘wordpress主题首页显示不全
  • 本地怎样上传自己做的网站如何设计大型电商网站建设
  • wordpress表情插件优化seo方案
  • 做宠物店网站的素材横岗做网站公司
  • 网站建设的环境巨久科技网站建设
  • 不收费的网站有哪些公司网站制作教程
  • 淄博做网站的公司学网站开发培训班
  • 北京网站建设优化学校哪个网站做的系统好用吗
  • 怎样注册自己网站的域名抖音推广费用标准
  • 单页网站域名提供深圳网站制作公司
  • 开一家做网站的公司wordpress检测
  • 班级网站怎么做ppt平面设计好的网站
  • ps做简洁大气网站中国建设银行安徽省分行网站
  • 公司网站建设规划wordpress4.7更新说明
  • 网站续费公司软件开发培训学校软件开发培训机构
  • 新泰做网站做网站的快捷方式代码
  • 沈阳网站开发技术公司怎么建设网站让国外看
  • 烟台网站制作策划做家旅游的视频网站好