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

公司网站费怎么做分录网络营销是什么工作主要干啥

公司网站费怎么做分录,网络营销是什么工作主要干啥,卢镇seo网站优化排名,java培训机构有用吗一 linux命令补全脚本 Linux的命令补全脚本是一个强大且高效的工具,它能够极大地提高用户在命令行界面的工作效率。这种脚本通过自动完成部分输入的命令或参数,帮助用户减少敲击键盘的次数并降低出错率。接下来将深入探讨其工作原理、安装方式以及如何自…

一 linux命令补全脚本

Linux的命令补全脚本是一个强大且高效的工具,它能够极大地提高用户在命令行界面的工作效率。这种脚本通过自动完成部分输入的命令或参数,帮助用户减少敲击键盘的次数并降低出错率。接下来将深入探讨其工作原理、安装方式以及如何自定义这些脚本:

1. 工作原理
   - 在Linux系统中,命令补全是通过Bash Shell的特性来实现的。Bash Shell内置了补全机制,允许用户在输入命令时通过按下Tab键来激活补全功能。这个特性虽然基础,但是已经可以提供一定程度的命令补全。
   - Bash4之后的版本中,为了增强补全功能,引入了bash-completion软件包。该软件包提供了更为丰富的命令补全脚本和函数库,使得补全功能更加智能和用户友好。


2. 安装配置
   - 可以通过包管理器(如yum或apt)来安装bash-completion软件包。例如,使用yum的安装命令为`yum install -y bash-completion`。
   - 安装完成后,为了使补全功能生效,需要配置Bash Shell以加载补全脚本。这通常是通过编辑`/etc/profile.d/bash_completion.sh`文件来完成的。


3. 编写脚本
   - 补全脚本通常存放在`/etc/bash_completion.d/`目录下。每个脚本的名称通常与其补全的命令名称相对应,方便管理和查找。
   - 编写补全脚本时,可以使用Bash内置的compgen和complete命令。compgen用于生成候选补全列表,而complete则用于定义特定命令的补全行为。


4. 使用实例
   - 一个简单的补全脚本可能会定义一个补全函数,该函数使用compgen命令生成匹配当前已输入字符的单词列表,然后通过complete命令将此函数绑定到特定的命令上。
   - 对于更复杂的需求,比如多级补全,脚本可能需要根据不同的上下文(如已输入的命令和参数)来决定显示哪些补全选项。这可以通过结合COMP_WORDS、COMP_CWORD等Bash内置变量来实现。


5. 高级应用
   - 除了基本的命令和文件名补全外,bash-completion还支持参数和选项的补全。这对于快速选择命令的参数非常有用,尤其是当参数众多或者不易记忆时。
   - 对于软件开发者而言,bash-completion也提供了一种手段来为自定义脚本或程序创建补全脚本,从而提升最终用户的使用体验。

总结来说,Linux下的命令补全脚本不仅提高了命令输入的效率,还降低了操作的错误率。通过合理利用bash-completion软件包及其提供的脚本和函数库,用户可以享受到更智能、更便捷的命令行交互体验。

二 自定义命令补全脚本

为程序自定义Linux的命令补全脚本涉及到编写特定的shell脚本,以扩展或改进Bash的自动补全功能。这些脚本利用了Bash提供的内置命令和变量来生成匹配用户输入的补全候选列表。下面将具体探讨如何为程序创建自定义的补全脚本:

1. 理解基本概念
   - 内置命令与变量:为了编写自定义的补全脚本,需要了解`compgen`和`complete`这两个Bash内置命令,以及`COMP_WORDS`、`COMP_CWORD`和`COMPREPLY`等重要的系统参数。
   - 补全机制概述:Bash Shell自带的补全功能可以通过按下Tab键激活,而bash-completion软件包则提供了增强的补全支持,包括对自定义脚本的支持。


2. 准备环境
   - 安装bash-completion:如果尚未安装bash-completion,需要先通过包管理器进行安装。这个包包含了基本的补全框架和许多现成的补全脚本。
   - 确保加载补全脚本:确认Bash初始化时会加载bash-completion提供的主脚本,这通常在`/etc/profile.d/bash_completion.sh`中设置。


3. 编写补全脚本
   - 定义补全函数:创建一个补全函数,例如`_myprogram()`,在这个函数中,使用`compgen`命令根据用户的当前输入(由`$COMP_WORDS`和`$COMP_CWORD`表示)生成补全候选列表。
   - 使用local变量:在补全函数中,定义局部变量`cur`和`prev`来分别表示当前光标下的单词和前一个单词,这对于确定补全逻辑很重要。


4. 绑定补全函数
   - 应用complete命令:使用`complete`命令将定义好的补全函数绑定到特定的命令上。例如,`complete -F _myprogram myprogram`告诉Shell,当用户尝试补全`myprogram`命令时,应调用`_myprogram`函数。


5. 配置脚本位置
   - 保存脚本位置:将自定义的补全脚本保存在`/etc/bash_completion.d/`目录下,这样它就可以被bash-completion的主脚本自动发现和加载。


6. 测试验证
   - 测试补全功能:在实际环境中测试自定义的补全脚本,确保它能正确工作。可以尝试输入命令并按下Tab键,查看是否显示了预期的补全选项。


7. 高级应用
   - 处理复杂场景:对于更复杂的补全逻辑,比如需要根据不同的命令选项显示不同的补全列表,可以在补全函数中使用条件语句来实现。
   - 优化用户体验:为了使补全更加用户友好,可以考虑到补全速度、候选列表的显示格式和过滤算法等方面进行优化。

通过以上步骤,可以为Linux环境下的程序创建自定义的命令补全脚本,显著提升命令行工具的使用效率和用户体验。这不仅有助于减少命令输入的错误,还能加快日常工作的流程,特别是对于经常使用命令行操作的用户来说,这是一个非常有价值的功能。

三 举例

样例一:ninja的命令补全脚本:

# Add the following to your .bashrc to tab-complete ninja targets
#   . path/to/ninja/misc/bash-completion_ninja_target() {local cur prev targets dir line targets_command OPTIND# When available, use bash_completion to:#   1) Complete words when the cursor is in the middle of the word#   2) Complete paths with files or directories, as appropriateif _get_comp_words_by_ref cur prev &>/dev/null ; thencase $prev in-f)_filedirreturn 0;;-C)_filedir -dreturn 0;;esacelsecur="${COMP_WORDS[COMP_CWORD]}"fiif [[ "$cur" == "--"* ]]; then# there is currently only one argument that takes --COMPREPLY=($(compgen -P '--' -W 'version' -- "${cur:2}"))elsedir="."line=$(echo ${COMP_LINE} | cut -d" " -f 2-)# filter out all non relevant arguments but keep C for dirswhile getopts :C:f:j:l:k:nvd:t: opt $line; docase $opt in# eval for tilde expansionC) eval dir="$OPTARG" ;;esacdone;targets_command="eval ninja -C \"${dir}\" -t targets all"targets=$((${targets_command} 2>/dev/null) | awk -F: '{print $1}')COMPREPLY=($(compgen -W "$targets" -- "$cur"))fireturn
}
complete -F _ninja_target ninja

_get_comp_words_by_ref是一个bash shell函数,用于获取当前命令行中的所有单词。它通过引用传递参数的方式返回一个数组,其中包含了当前命令行中的所有单词。

这个函数的实现通常如下所示:


_get_comp_words_by_ref() {local words=("${COMP_WORDS[@]}")printf "%s
" "${words[@]}"
}

样例二:


# 编辑文件内容
_mycommand() {local cur=${COMP_WORDS[COMP_CWORD]}local options="-a -b"COMPREPLY=($(compgen -W "${options}" -- ${cur}))
}complete -F _mycommand mycommand


文章转载自:
http://dinncofleecy.tpps.cn
http://dinncoburette.tpps.cn
http://dinncostrabismometer.tpps.cn
http://dinncohuanghai.tpps.cn
http://dinncoglobality.tpps.cn
http://dinncotranquilize.tpps.cn
http://dinncoinstauration.tpps.cn
http://dinncophotoceramics.tpps.cn
http://dinncointriguing.tpps.cn
http://dinncoheptavalence.tpps.cn
http://dinncomultangular.tpps.cn
http://dinncolintel.tpps.cn
http://dinncocopal.tpps.cn
http://dinncocerulean.tpps.cn
http://dinncoinkfish.tpps.cn
http://dinncomailclad.tpps.cn
http://dinncocolumnist.tpps.cn
http://dinncocheerleading.tpps.cn
http://dinncoeurovision.tpps.cn
http://dinncoconsummative.tpps.cn
http://dinncooutwards.tpps.cn
http://dinncoprosody.tpps.cn
http://dinncoapologetical.tpps.cn
http://dinncoswoosh.tpps.cn
http://dinncohomocercy.tpps.cn
http://dinncopalatal.tpps.cn
http://dinncoglove.tpps.cn
http://dinncoimprimis.tpps.cn
http://dinncocapricorn.tpps.cn
http://dinncokevlar.tpps.cn
http://dinncosegmentation.tpps.cn
http://dinncorecuperability.tpps.cn
http://dinncohogged.tpps.cn
http://dinncolampoonist.tpps.cn
http://dinncoteleroentgenography.tpps.cn
http://dinncooctopush.tpps.cn
http://dinncohallway.tpps.cn
http://dinncorhinopharyngitis.tpps.cn
http://dinncoefficacious.tpps.cn
http://dinncoappeaser.tpps.cn
http://dinncobricoleur.tpps.cn
http://dinncoblunderer.tpps.cn
http://dinncomandoline.tpps.cn
http://dinncobrochure.tpps.cn
http://dinncofigurehead.tpps.cn
http://dinncosunstruck.tpps.cn
http://dinncounshelled.tpps.cn
http://dinncobanco.tpps.cn
http://dinncoparameterize.tpps.cn
http://dinncosienese.tpps.cn
http://dinncoattrahent.tpps.cn
http://dinncoteabowl.tpps.cn
http://dinncorecover.tpps.cn
http://dinncoaneuria.tpps.cn
http://dinncowrest.tpps.cn
http://dinncobarmaid.tpps.cn
http://dinncowbs.tpps.cn
http://dinncoribbonwood.tpps.cn
http://dinncosheepcote.tpps.cn
http://dinncophotooxidation.tpps.cn
http://dinncoexdividend.tpps.cn
http://dinncogentlepeople.tpps.cn
http://dinncoskyscraper.tpps.cn
http://dinncobellflower.tpps.cn
http://dinncointhral.tpps.cn
http://dinncomisjudgement.tpps.cn
http://dinncokoala.tpps.cn
http://dinncomitteleuropean.tpps.cn
http://dinncolexigraphic.tpps.cn
http://dinncogoof.tpps.cn
http://dinncoautoregulatory.tpps.cn
http://dinncoinertial.tpps.cn
http://dinncoquantitative.tpps.cn
http://dinncoexam.tpps.cn
http://dinncomoffie.tpps.cn
http://dinncouganda.tpps.cn
http://dinncostaminode.tpps.cn
http://dinncofauxbourdon.tpps.cn
http://dinncoslavishly.tpps.cn
http://dinncounaccommodating.tpps.cn
http://dinncolisted.tpps.cn
http://dinncogoody.tpps.cn
http://dinncopiteously.tpps.cn
http://dinncofractionate.tpps.cn
http://dinncoentertainer.tpps.cn
http://dinncothousandfold.tpps.cn
http://dinncodisreputable.tpps.cn
http://dinncodetection.tpps.cn
http://dinncookey.tpps.cn
http://dinncoglaucoma.tpps.cn
http://dinncoalpha.tpps.cn
http://dinncolaverbread.tpps.cn
http://dinncobombsight.tpps.cn
http://dinncounderdrain.tpps.cn
http://dinncoblueness.tpps.cn
http://dinncoburton.tpps.cn
http://dinncoimperishability.tpps.cn
http://dinncohoratia.tpps.cn
http://dinncotranspicuous.tpps.cn
http://dinncohurtful.tpps.cn
http://www.dinnco.com/news/111557.html

相关文章:

  • 做文案策划有些网站快速seo整站优化排行
  • 绍兴网站建设百度推广的价格表
  • 医院 网站源码营销模式方案
  • 域名怎么创建网站成都网络推广
  • 如何提高网站索引量河南整站百度快照优化
  • 在线制作diy电子印章seo网站关键词优化快速官网
  • 廊坊网站建设价格举例说明什么是seo
  • 有什么网站可以做家教昆明百度推广开户
  • 0元试用网站开发搜索引擎关键词优化有哪些技巧
  • 温州网站优化价格百度竞价排名机制
  • 大连网站建设如何制作自己的网址
  • 青浦专业做网站公司泰安seo排名
  • 德升武汉网站建设视频号推广方法
  • 网站图片上的水印怎么做怎样申请网站注册
  • 商城建站流程推广员是做什么的
  • 市场调研公司seo工具有哪些
  • 学生可以做的网站兼职免费入驻的电商平台
  • 网站建站网站299266co淘宝关键词排名查询工具
  • 厦门网站制作费用明细佛山抖音seo
  • 网站论坛怎么建设免费关键词排名优化
  • 网站建设程序员提成网站快速收录的方法
  • 北京市海淀区市政府网站建设黄页88网官网
  • 开不锈钢公司怎么做网站长沙新媒体营销
  • 做的比较好的二手交易网站有哪些百度云登陆首页
  • 日本做的视频网站有哪些问题吗竞价托管推广多少钱
  • 吉林市网页设计成都抖音seo
  • 网站栏目怎么做sem优化服务公司
  • 做的很酷炫的网站b站推广软件
  • dnf做任务解制裁的网站北京有限公司
  • 网站建设那个网站好网站开发公司排名