文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

Linux入门-shell编程-适合小白

2024-12-03 04:45

关注
  1. your_name="yikoulinux" 

注意,变量名和等号之间不能有空格,这可能和你熟悉的所有编程语言都不一样。同时,变量名的命名须遵循如下规则:

有效的 Shell 变量名示例如下:

  1. RUNOOB 
  2. LD_LIBRARY_PATH 
  3. _var 
  4. var2 

无效的变量命名:

  1. ?var=123 
  2. user*name=runoob 

2. 常用变量

Linux Shell 中的变量分为:系统变量和用户自定义变量。

系统变量:、PWD、、USER 等等比如: echo $HOME 等等..

用户自定义变量:

除了显式地直接赋值,还可以用语句给变量赋值,如: 1) A=ls -la反引号,运行里面的命令,并把结果返回给变量 A 2)

  1. A=$(ls -la) 

$等价于反引号

3)

  1. for file in `ls /etc` 

  1. for file in $(ls /etc) 

以上语句将 /etc 下目录的文件名循环出来。

3. 举例

例1:

含义如下:

  1. 定义一个变量名为name的变量,值为一口linux
  2. 输出变量name的值
  3. 定义一个变量名为number的变量,初始值为22
  4. 输出变量number的值
  5. 直接输出带变量的字符串
  6. 使用双引号输出带变量的字符串
  7. 使用单引号输出带变量的字符串
  8. 使用双引号输出带不存在的变量的字符串,不存在的变量默认为空
  9. 使用双引号来声明字符串中的变量
  10. 使用大括号{&变量名},声明字符串中的变量

注意: 上述变量是临时变量,当关闭终端后,变量就会消失。

例2: 删除变量并查看指定变量

  1. unset name 删除变量name
  2. 查看name变量

二、字符串的操

作在做shell批处理程序时候,经常会涉及到字符串相关操作。有很多命令语句,如:awk,sed都可以做字符串各种操作。

其实shell内置一系列操作符号,可以达到类似效果,大家知道,使用内部操作符会省略启动外部程序等时间,因此速度会非常的快。

1. 字符串操作(长度,读取,替换)

说明:"* $substring”可以是一个正则表达式.

2. 字符串操作举例

a) 计算字符串长度

  1. root@ubuntu:/home/peng# test='I love china' 
  2. root@ubuntu:/home/peng# echo ${#test} 
  3. 12 

 

${#变量名}得到字符串长度

b) 截取字串

  1. root@ubuntu:/home/peng# test='I love china' 
  2. root@ubuntu:/home/peng# echo ${test:5} 
  3. e china 
  4. root@ubuntu:/home/peng# echo ${test:5:10} 
  5. e china 
  6. root@ubuntu:/home/peng#  
  7. root@ubuntu:/home/peng# echo ${test:4:10} 
  8. ve china 

 

${变量名:起始:长度}得到子字符串

c) 字符串删除

  1. root@ubuntu:/home/peng# test='c:/windows/boot.ini' 
  2. root@ubuntu:/home/peng# echo ${test#/} 
  3. c:/windows/boot.ini 
  4. root@ubuntu:/home/peng# echo ${test#*/} 
  5. windows/boot.ini 
  6. root@ubuntu:/home/peng# echo ${test##*/} 
  7. boot.ini 
  8. root@ubuntu:/home/peng# echo ${test%},${test%_/g'
  9.  mv "$line" $newFile 
  10. logInfo "mv $line $newFile $?" 
  11.  done 
  12. }  

遍历文件内容

  1. cat /tmp/text.txt | while read line 
  2. do 
  3.  echo $line 
  4. done 

文件不存在,则创建文件

  1. [ -f $logFile ] || touch $logFile 

递归遍历目录

  1. function getFile(){ 
  2.  for file in `ls $1` 
  3.  do 
  4.   element=$1"/"$file 
  5.      if [ -d $element ] 
  6.   then  
  7.          getFile $element 
  8.      else 
  9.          echo $element 
  10.      fi   
  11.  done 

清空文件内容

  1. cat /dev/null > $filePath 

本文转载自微信公众号「一口Linux」,可以通过以下二维码关注。转载本文请联系一口Linux公众号。

 

来源: 一口Linux内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯