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

公共资源中心网站建设河北辛集市网站建设

公共资源中心网站建设,河北辛集市网站建设,国内搜索引擎网站,梦幻西游网页版文章目录 shell变量全局变量#xff08;环境变量#xff09;局部变量设置PATH 环境变量修改变量属性 启动文件环境变量持久化 ./和. 的区别脚本编写判断 和循环命令行参数传入参数循环读取命令行参数获取用户输入 处理选项处理简单选项处理带值选项 重定向显示并且同时输出到… 文章目录 shell变量全局变量环境变量局部变量设置PATH 环境变量修改变量属性 启动文件环境变量持久化 ./和. 的区别脚本编写判断 和循环命令行参数传入参数循环读取命令行参数获取用户输入 处理选项处理简单选项处理带值选项 重定向显示并且同时输出到文件 替换目录下的所有文件中某个关键字删除关键字所在行 shell shell的作用是将我们输入的命令与内核沟通。 linux默认使用的是bash shell echo $SHELL可以查看当前使用的shell版本 shell中如果想一次执行多条命令可以用分号隔开多条命令的组合可以放到一个文件中我们把它叫做脚本。 date ; cd这样就编写了一个非常简单的shell脚本。 变量 存储shell会话和工作环境的相关信息。 环境变量存储在内存中以便shell中运行的脚本和程序能够访问。 环境变量分为全局变量和局部变量 全局变量对当前shell以及所有子shell可见 局部变量只在当前shell可见子shell不可见 所以全局变量和局部变量差异就是是否 可以被子进程使用 全局变量环境变量 set 查看当前shell所有变量包括全局和局部 env 查看当前shell下所有环境变量只能查看全局变量 printenv HOME 查看某个全局环境变量的值 echo $HOME 查看环境变量 echo $$ 查看当前shell的pid export作用是将局部变量转换成全局变量 export my_all_home/lib/lib 设定全局环境变量 子shell可以查看和使用但不能修改父shell中的全局环境变量 unset my_all_home 删除环境比哪里 局部变量 没有命令能够查看所有局部变量 设定局部变量 myhome/lib/ 查看某个局部变量 变量内若有空格可以使用双引号或者单引号myhome/lib/ jj 设置PATH 环境变量 当输入一个外部命令时shell会搜索系统从中找到对应程序。 PATH环境变量定义了用于查找命令和程序的目录。 如果要执行的外部命令在PATH中查找不到应用程序则会报错。 如果要在PATH后继续添加路径我们可以使用冒号累加 export PATH$PATH:/lib 修改变量属性 变量默认是字符串类型 可以使用declare改变变量类型 declare -a var 将变量修改为数组类型 启动文件 在系统的启动shell中会启动/etc/profile 一旦启动shell就会执行该文件中的命令HOME目录下的启动文件。在启用一个新shell时会用到下面的启动文件 ls -a home目录可以看到 ./bashrc ubuntu的home目录启动文件 环境变量持久化 所以./bashrc文件的作用就是我们可以将要使用的全局环境变量放到这个文件中那么我们一旦开启新的shell则自动拥有这个环境变量 如果不想重启立即生效则执行source /.bashrc ./和. 的区别 点空格斜杠执行脚本是相当于source 执行脚本也就是说在当前进程中执行命令所以其中所有变量的设置会对当前Shell其作用。 点斜杠执行脚本是外部命令所以他会启动子进程然后运行所以一些局部变量就不起作用。 也就是说设置环境变量的时候我们使用source或者说. 空格可以直接生效。 脚本编写 使用shell脚本文件必须在第一行指明所使用的shell版本 #!/bin/bash 表示使用的是bash shell #!/bin/bashdate # 打印字符串 echo lets go # 将下一行打印到当前行连到一起 echo -n lets go at: date # 打印环境变量两种均可 echo HOME: $HOME echo user: ${USER}# 用户自定义变量只在本脚本中生效 var110 echo var1 $var1 var2$var1 echo var2 $var2# 将shell的输出赋值给变量 var_datedate echo $var_date 判断 和循环 # if后面的命令执行成功返回0则可以进入then if date thenecho date works elseecho date not work fi # if后面只能跟命令如果要进行条件判断则需要加大括号 if [ 1 -eq 2 ] thenecho 1 2 elseecho 1 ! 2 fi # while var25 while [ $var2 -gt 0 ] doecho $var2 testvar2$[ $var2-1 ] done# for var in list 读取列表 for i in Ala Alb Alc doecho test: $i donelistAla Alb Alc if date thenecho date works elseecho date not work fi # if后面只能跟命令如果要进行条件判断则需要加大括号 if [ 1 -eq 2 ] thenecho 1 2 elseecho 1 ! 2 fi # while var25 while [ $var2 -gt 0 ] doecho $var2 testvar2$[ $var2-1 ] done# for var in list 读取列表 for i in Ala Alb Alc doecho test: $i donelistAla Alb Alc for i in $list doecho test: $i done# for in c style for ((i1; i10; i)) doecho for in c $i done # for遍历目录 for file in /home/* doif [ -d $file ]thenecho $file is a direlif [ -f $file ]thenecho $file is a filefi done命令行参数 传入参数 对传入参数检查如果缺少参数会产生很糟糕的结果 # args echo $0 #./1.sh 不单单是程序名称 echo $1 if [ -n $2 ] # 如果有参数2 # if [ -z $2 ] 如果没有参数2 thenecho $2 elseecho no args 2 fi循环读取命令行参数 #当前进程pid # $$ #统计参数个数 echo param count $# for param in $* doecho Parameter * $param done for param in $ doecho Parameter $param done./1.sh a b c d param count 4 Parameter * a b c d Parameter a Parameter b Parameter c Parameter d 获取用户输入 当执行脚本到后还可以使用read在脚本运行中获取用户输入以做下一步判断。 处理选项 处理简单选项 遍历所有选项选择符合条件的 while [ -n $1 ] #循环检测第一个参数如果第一个参数存在则进入循环 docase $1 in-a) echo found the -a option;; # 双引号为语法-b) echo found the -b option;;-c) echo found the -c option;;*) echo no matching option;; # 默认序列esac # case结束符shift # 将参数左移一个位置 done(base) [user1sysqa-h3c-b10 ~]$ ./1.sh -b -c -d -a found the -b option found the -c option no matching option found the -a option 处理带值选项 脚本检测选项中附加的参数然后进行处理 while [ -n $1 ] #循环检测第一个参数如果第一个参数存在则进入循环 #while [ $# -gt 0 ] # 也可以使用这个判断如果参数个数非0 docase $1 in-a) echo found the -a option;; # 双引号为语法-b) param$2echo found the -b option, param$paramshift;; #因为加了个参数所以要移一位-c) echo found the -c option;;--) shift #发现破折号则选项列表结束脚本将剩余参数作为参数而不是选项处理break;; #退出循环去处理剩余参数*) echo no matching option;; # 默认序列esac # case结束符shift # 将参数左移一个位置 done(base) [user1sysqa-h3c-b10 ~]$ ./1.sh -a -b 4 -d -c found the -a option found the -b option, param4 no matching option found the -c option #!/bin/bash # 定义长短选项 while [[ $# -gt 0 ]]; do case $1 in -h|--help) echo Usage: $0 [-o|--outputFILE] [-v|--verbose] [file...] echo -o, --outputFILE Specify output file echo -v, --verbose Enable verbose mode echo -h, --help Display this help message exit 0 ;; -o|--output) shift # 跳过选项本身 output_file$1 shift # 跳过值 ;; -v|--verbose) verbose_flagtrue ;; --) # 结束选项解析 shift break ;; *) # 未知选项 echo Error: Unknown option $1 exit 1 ;; esac shift # 跳过当前参数 done # 检查是否提供了至少一个非选项参数 if [ $# -eq 0 ]; then echo Error: No input files provided. echo Usage: $0 [-o|--outputFILE] [-v|--verbose] [file...] exit 1 fi # 处理非选项参数这里简单打印出来 echo Processing files: for file in $; do echo $file # 在这里可以添加处理文件的代码例如使用cat, grep, sed等命令 done # 根据选项执行相应的操作 if [ -n $output_file ]; then echo Output file specified: $output_file # 在这里可以添加将处理结果写入文件的代码 fi if $verbose_flag; then echo Verbose mode is enabled. # 在这里可以添加冗余输出的代码 fi # 脚本结束 exit 0重定向 标准输入是键盘 输入重定向符号为 也就是输入不再从键盘而是从其他地方比如文件 标准输出是显示器 输出重定向符号为 也就是输出不再到显示器二十到其他地方比如文件 使用 重定向输出追加 标准错误输出 shell是将错误消息与正常输出分开处理所以如果发生错误还是会输出到屏幕 ls badfile 2 a.txt 可以将标准错误输出到文件 数据和错误同时输出到一个文件 ls badfile a.txt或者 21 数据和错误分别输出 ls badfile 1 a.txt 2b.txt 如果想把一个命令的输出作为另一个命令的输入可以使用重定向 date 1.log sort 1.log 但是需要两条命令, 看起来有点笨拙。 使用管道符则可以直接完成这个功能 date | sort 显示并且同时输出到文件 tee命令 date | tee 1.txt 如果希望追加则加 -a 替换目录下的所有文件中某个关键字 #!/bin/bash # find path and replace all .c file keywords is while to for find ./ -name *.c -exec sed -i s/hip/mc/g {} \;删除关键字所在行 find ./ -name *.c -exec sed -i /load_json_helper/d {} \;
http://www.hkea.cn/news/14554088/

相关文章:

  • 算命网站搭建网络系统安全原则
  • 如何在百度提交自己的网站婚庆网站开发目的
  • 前端seo优化方案网站如何做谷歌优化
  • 肥城网站建设电话自己怎样免费建网站
  • 手工网站怎样做三角包如何在360网页上做公司网站
  • 创意个人网站设计免费销售网站模板下载
  • 芜湖市建设投资有限公司网站宣传渠道有哪些
  • 订单网站模块中国家装公司十大排名
  • 网站建设创业计划书模板范文手机如何做微商城网站设计
  • 更改网站的布局漳州网站开发找出博大科技
  • app开发 网站建设唐山市住房城乡建设部网站主页
  • 阜新市建设学校管方网站网上开店怎么注册
  • 酒类网站建设策划书用asp做的大型网站
  • 安防公司网站建设如何建一个自己的网站
  • 做网站 微信开发前景杭州软件制作
  • 武进网站建设价格东莞公司有哪些
  • 263网站建设怎么样企业网站优化的三层含义
  • 产品网站怎样做外部链接百度能收录的免费网站
  • 房地产网站开发wordpress统计访客
  • 顺德哪家做网站建设网站要注意什么
  • 网站建设流程资讯做基础工程分包应上什么网站
  • 做视频网站都需要什么做的好的排版网站
  • 文明农村建设网站电脑如何做网站空间
  • 建设企业网站包含什么电商知识网
  • 什么网站可以看女人唔易做360免费建站软仵下载
  • 中医医院网站建设需求做aa视频网站
  • 帮人做网站赚钱吗沧州建设网站公司
  • 网站开发简介苏州做网站的专业公司
  • 川畅科技联系 网站设计涟水县住房和城乡建设局网站
  • 网站群建设系统index放WordPress哪个目录