LinuxDown

LinuxDown.com
Linux系统下载网——精选每一篇高品质的技术干货
  1. 首页
  2. 开源快讯
  3. 正文

linux rename函数 Linux用户的必修功课之一编程的Shell种类及作用

2023年3月22日 102点热度

r语言 rename函数_linux rename函数_rename函数重命名照片

从程序员的角度来看,Shell本身是一种用C语言编撰的程序,从用户的角度来看linux rename函数,Shell是用户与Linux操作系统沟通的桥梁。用户既可以输入命令执行,又可以借助Shell脚本编程,完成愈加复杂的操作。在LinuxGUI日渐建立的明天,在系统管理等领域,Shell编程依然起着不可忽略的作用。深入地了解和熟练地把握Shell编程,是每一个Linux用户的选修功课之一。

Linux的Shell种类诸多,常见的有:

BourneShell(/usr/bin/sh或/bin/sh)、

BourneAgainShell(/bin/bash)、

CShell(/usr/bin/csh)、

KShell(/usr/bin/ksh)、

ShellforRoot(/sbin/sh)······

linux rename函数_r语言 rename函数_rename函数重命名照片

不同的Shell语言的句型有所不同,所以不能交换使用。每种Shell都有其特色之处,基本上,把握其中任何一种就足够了。在本文中,我们关注的重点是Bashlinux服务器搭建,也就是BourneAgainShell,因为易用和免费,Bash在日常工作中被广泛使用;同时,Bash也是大多数Linux系统默认的Shell。在通常情况下,人们并不分辨BourneShell和BourneAgainShell,所以,在下边的文字中,我们可以见到#!/bin/sh,它同样也可以改为#!/bin/bash。

借助vi等文本编辑器编撰Shell脚本的格式是固定的,如下:

#!/bin/sh

#comments

Yourcommandsgohere

首行中的符号#!告诉系统其后路径所指定的程序即是解释此脚本文件的Shell程序。假如首行没有这句话,在执行脚本文件的时侯,将会出现错误。后续的部份就是主程序,Shell脚本像中级语言一样,也有变量形参,也有控制句子。除第一行外,以#开头的行就是注释行,直至此行的结束。假如一行未完成linux rename函数,可以在行尾加上",这个符号表明下一行与此行会合并为同一行。

编辑完毕,将脚本读档为filename.sh,文件名后缀sh表明这是一个Bash脚本文件。执行脚本的时侯,要先将脚本文件的属性改为可执行的:

chmod+xfilename.sh

执行脚本的方式是:

./filename.sh

r语言 rename函数_rename函数重命名照片_linux rename函数

下边我们从精典的“helloworld”入手,看一看最简单的Shell脚本的模样。

#!/bin/sh

#printhelloworldintheconsolewindow

r语言 rename函数_rename函数重命名照片_linux rename函数

a="helloworld"

echo$a

ShellScript是一种弱类型语言,使用变量的时侯无需首先申明其类型。新的变量会在本地数据区分配显存进行储存,这个变量归当前的Shell所有,任何子进程都不能访问本地变量。这种变量与环境变量不同,环境变量被储存在另一显存区,称作用户环境区,这块显存中的变量可以被单进程访问。

变量形参的方法是:

variable_name=variable_value

假如对一个早已有值的变量形参linux 版本,新值将代替旧值。取值的时侯要在变量名前加$,$variable_name可以在冒号中使用,这一点和其他中级语言是显著不同的。

倘若出现混淆的情况,可以使用花括弧来分辨,比如:echo"Hi,$as"就不会输出“Hi,helloworlds”,而是输出“Hi,”。这是由于Shell把$as当作一个变量,而$as未被形参,其值为空。正确的方式是:echo"Hi,${a}s"单冒号中的变量不会进行变量替换操作。

关于变量,还须要晓得几个与其相关的Linux命令。

env用于显示用户环境区中的变量及其取值;set用于显示本地数据区和用户环境区中的变量及其取值;unset用于删掉指定变量当前的取值,该值将被指定为NULL;export命令用于将本地数据区中的变量转移到用户环境区。

下边我们来看一个更复杂的反例,结合这个反例,我们来述说ShellScript的句型。

 #!/bin/bash # we have less than 3 arguments. Print the help text:if [ $# -lt 3 ]; thencat<<helpren -- renames a number of files using sed regular expressionsUSAGE: ren 'regexp' 'replacement' filesEXAMPLE: rename all *.HTM files in *.html:ren 'HTM$' 'html' *.HTMHELPexit 0fiOLD="$1"NEW="$2"# The shift command removes one argument from the list of# command line arguments.shiftshift# $* contains now all the files:for file in $*; doif [ -f "$file" ]; thennewfile=`echo "$file" | sed  "s/${OLD}/${NEW}/g"`if [ -f "$newfile" ]; thenecho "ERROR: $newfile exists already"elseecho "renaming $file to $newfile "mv "$file" "$newfile"fifidone

我们从头来看,上面两行上一个反例中早已解释过了,从第三行开始,有新的内容。if句子和其他编程语言相像,都是流程控制句子。它的句型是:

if …; then…elif …; then…else…fi

与其他语言不同,ShellScript中if句子的条件部份要以分号来分隔。第三行中的[]表示条件测试,常用的条件测试有下边几种:

[-f"$file"]判定$file是否是一个文件

[$a-lt3]判定$a的值是否大于3,同样-gt和-le分别表示小于或大于等于

[-x"$file"]判定$file是否存在且有可执行权限,同样-r测试文件可读性

[-n"$a"]判定变量$a是否有值,测试空串用-z

["$a"="$b"]判定$a和$b的取值是否相等

[cond1-acond2]判定cond1和cond2是否同时创立,-o表示cond1和cond2有一创立

要注意条件测试部份中的空格。在方括弧的右侧都有空格,在-f、-lt、=等符号两边同样也有空格。若果没有那些空格,Shell解释脚本的时侯才会出错。

$#表示包括$0在内的命令行参数的个数。在Shell中,脚本名称本身是$0,剩下的依次是$0、$1、$2…、${10}、${11},等等。$*表示整个参数列表,不包括$0,也就是说不包括文件名的参数列表。

如今我们明白第三行的涵义是假如脚本文件的参数多于三个,则执行if和fi句子之间的内容。之后,从第四行到第十一行之间的内容在ShellScript编程中被称为Here文档,Here文档用于将多行文本传递给某一命令。Here文档的格式是以

本作品采用 知识共享署名 4.0 国际许可协议 进行许可
标签: bin linux系统 shell shell函数 shell脚本
最后更新:2023年3月22日

Linux系统下载网

每日更新,欢迎收藏♥ 不积跬步无以至千里,加油,共勉。

点赞
< 上一篇
下一篇 >

Linux系统下载网

每日更新,欢迎收藏♥
不积跬步无以至千里,加油,共勉。

最新 热点 随机
最新 热点 随机
创建用户的时候指定分组是怎样的体验? SUSE Linux虚拟机下载指南 Linux系统与Shell编程入门指南 Linux系统中通常有三种类型的用户:超级用户 安装KaliLinux虚拟机的大小选项中的配置信息介绍 centos rhythmbox CentOS轻松享受Rhythmbox音乐,安装教程! 可用性对比Banshee的应用起来非常简单,你知道吗 解决Linux CPU高负载,8招搞定! 《鸡你太美》都没有对应歌词…… Linux设备驱动开发详解4:8个问题解决方案 嵌入式Linux系统的构建和管理方式发生了什么? 哪些电脑可安装Linux?十大特点解析! Linux服务器的优势是什么? 什么是分区讲解系统?安装linux系统的主要步骤对应的知识点 RedHat磁盘分区指南:规划磁盘信息 Linux操作系统的安装方法(42页珍藏版) Linux硬盘对拷技巧:详解与注意事项 编程语言驱动AI走出20世纪90年代的人工智能冬季 嵌入式Linux系统的开发环境是什么样的?? Linux编写.sh文件的技巧
最小化安装“图形化界面”有什么区别?创建用户的时候指定分组是怎样的体验?fedora server FedoraServer:优势与使用方法i2c linux驱动 ARM-Linux开发和MCU开发的不同点,以及ARM-Linux的基本开发环境Linux用户如何获得管理员权限?8种方法解析RedHatLinux操作系统支持的文件系统教程操作环境Linux常用软件源,打造高效系统7-ZipZS中文多语免费版开源免费解压缩软件轻松管理MySQL,这8个Linux工具必备Linux基础——远程访问及控制(OpenSSH服务端)Linux系统移植,嵌入式必备!Linux日志监控软件,构建完善系统(Linux基础知识)Linux内核中的五大子系统CPU玩转Linux用户空间MTD,享受高效闪存系统Linux搜索文件夹,快速找到你需要的!java编译后的文件加密保护防止反编译的工具Linux查看SSL版本,轻松掌握Linux文件自动补齐技巧发掘Linux系统潜力,提高生产力centos教程:解决CentOS7没有图形化界面,以及怎么安装
防火墙基础默认规则原则:配置都是临时生效,永久生效 你拔U盘时会点“安全删除硬件”吗? 网络安装Linux系统:多种方法全解析 Linux解压zip文件9招 Linux登录认证失败的8个问题,让你不再孤单 linux java环境 打造高效LinuxJava开发环境,提升开发效率! Linux下修改环境变量的几种主要方法,你知道吗? 深入探究Linux设备驱动开发,第三版详解! Linux如何安装fcitx输入法 虚拟机装deepin,电脑焕然新生 Fedora 25轻松安装智能fcitx输入法 教你轻松安装搜狗输入法Linux版,输入更畅快! 大白菜启动U盘、centos7系统镜像、UltraISO镜像所在分区 企业Linux安全运维:10大分析实战经验 Linux、BSD及Mac上复制文件的方式可能你 和修改Linux实例内核参数在修改中的应用和参数 Linux下重命名修改文件名的命令有哪些? Linux上最常用的SSH图形界面工具,你知道吗? 韩国Linux多线程服务端编程使用C++网络库编程 如何使用WINE来实现从Windows到Linux的无缝切换?
标签聚合
文件目录 虚拟机 命令 软件 命令模式 操作 sudo centos linux服务器 linux系统
书籍
课程
技术群
技术干货大合集↓
  • 2023年6月 / 22篇
  • 2023年5月 / 124篇
  • 2023年4月 / 115篇
  • 2023年3月 / 265篇
友情链接:

Linux书籍 | Linux命令 | Linux系统 | RHCE红帽认证 | Linux软件 | Linux教程 | CentOS系统 | Linux内核 | Linux服务器 | Linux大神 | IT资源

COPYRIGHT © 2023 LinuxDown.com ALL RIGHTS RESERVED.

京ICP备14023444号-2