iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >Shell常见用法有哪些
  • 233
分享到

Shell常见用法有哪些

2023-06-09 16:06:13 233人浏览 薄情痞子
摘要

这篇文章主要为大家展示了“shell常见用法有哪些”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Shell常见用法有哪些”这篇文章吧。shell的简单使用最近发现shell脚本在平常工作中简直算

这篇文章主要为大家展示了“shell常见用法有哪些”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Shell常见用法有哪些”这篇文章吧。

shell的简单使用

最近发现shell脚本在平常工作中简直算一把瑞士军刀,很多场景下用shell脚本能实现常用的简单需求,而之前都没怎么学习过shell,就趁机把shell相关的语法和常见用法总结了下,方便以后随时回顾和查阅!

1. 综述

shebang

其实shell的开始并不难,第一行如下:

#!/bin/bash

叫做shebang

注释

shell的注释以#开头(这点类似于python

变量

变量定义:

var_test1="hello"

注意定义和赋值时=两边均不能有空格,且变量名前不能加$!

变量使用:

echo $var_test1

echo ${var_test1}

或:

str1="${var_test1} world"

加上美元符后的变量会被替换为其值。注意,单引号中的不会被替换

命令执行结果赋给一个变量:

lines=`wc -l 1.txt` # 这里lines就被赋值为了1.txt的行数lines="$(wc -l 1.txt)" # 单撇号不能嵌套,可用这种包含在内

格式化变量:

echo 23 | awk {printf("%05d", $0);} # 00023

字符串截取:

${var_test1:1:3}会得到"ell",即从索引1开始取3个字符

输出

shell中的输出直接用echo即可

echo "hello Word"

等同于

echo hello word

输入:

  • echo "What's your name?"

  • read Name # 这里不需要声明新变量

  • echo Hello, $Name!

多语句组合

&&: 满足短路原则,即第一个命令返回失败时不会执行第二个命令

||: 满足短路原则,即第一个命令返回成功时不会执行第二个命令

;: 不短路,不管第一个命令是否返回成功,均会执行第二个命令

echo "Always executed" || echo "Only executed if first command fails"echo "Always executed" && echo "Only executed if first command does NOT fail"echo "Always executed1" ; echo "Always executed2"

通道和重定向

cmd1 | cmd2: 通道,第一个命令的输出会直接作为第二个命令的标准输入来执行

Python test.py < in.txt: 输入重定向,将从in.txt读取输入而非标准输入流

echo "hello" > out.txt: 输出重定向,将前一个命令的输出定向到文件out.txt中(创建新文件并写入)

echo "hello" >> append.txt: 输出重定向,将前一个命令的输出定向到文件append.txt中(追加到文件末尾)

echo "hello" 2> err.txt: 错误流重定向,将前一个命令的错误流输出定向到文件err.txt中(创建新文件并写入)

echo "hello" 2>> err.txt: 错误流重定向,将前一个命令的错误流输出定向到文件err.txt中(追加到文件末尾)

2. 判断

最简单的判断逻辑是:

if [ condition1 ]; then   statement1elif [ condition2 ]; then  statement2else  statement3fi# 或者用testif test condition1 ; then   statement1fi

注意:condition两边与[]之间必须至少有一个空格

判断条件

shell中判断条件不同于其他语言中的<,>,==,<=,>=那么直接,常见的有下列几种:

-eq  等于(==)-ne  不等于(!=)-gt  大于(\>)-lt  小于(\<)-le  小于等于-ge  大于等于-z  空串-n  非空串==  两个字符相等!=  两个字符不等

组合判断

-a   且-o   或

特殊用法[[ ... ]]

字符串比较时可以把右边的作为一个模式,而不仅仅是一个字符串,比如[[ hello == hell? ]]结果为真
&&、||、<和> 操作符能够正常存在于[[ ]]条件判断结构中,但是如果出现在[ ]结构中的话,会报错。比如可以直接使用if [[ $a != 1 && $a <= 5 ]],如果不使用双括号, 则为if [ $a -ne 1] && [ $a -le 5 ]或者if [ $a -ne 1 -a $a -le 5 ]

文件的判断

-f   判断后面是否为一个文件-d   判断后面是否为一个目录-e   判断后面对应的文件是否存在-s   判断文件是否存在且不为空

switch case

case "$Variable" in  # 列出需要匹配的字符串  0) echo "There is a zero.";;  1) echo "There is a one.";;  *) echo "It is not null.";;esac

3. 循环

for 循环

# {1..3} == `seq 1 3`for Variable in {1..3}do  echo "$Variable"done

或传统的"for循环",但需要加两层括号(两层的小括号内可以写C语言中的语句):

for ((a=1; a <= 3; a++))do  echo $adone

在其他命令的结果上执行for循环:

for Output in $(ls)do  cat "$Output"done

while 循环

while [ condition ]do  echo "loop body here..."  breakdone

4. 命令行

$#   命令行参数个数$0   当前脚本名$n   第n个参数值,n可取1,2,3...$@   所有命令行参数$?   上一个命令的返回值

5. 其他常用命令

# 打印每行中 ',' 之前内容cut -d ',' -f 1 file.txt# 将 file.txt 文件所有 'okay' 替换为 'great', (兼容正则表达式)sed -i 's/okay/great/g' file.txt# shell中不支持浮点数除法运算,可使用awk实现浮点除法a=3b=4c=`awk 'BEGIN{printf "%.2f",('$a'/'$b')}'` # 单引号内的变量不能被替换,因此需要将变量单独放在引号外

以上是“Shell常见用法有哪些”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注编程网精选频道!

--结束END--

本文标题: Shell常见用法有哪些

本文链接: https://www.lsjlt.com/news/256758.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Shell常见用法有哪些
    这篇文章主要为大家展示了“Shell常见用法有哪些”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Shell常见用法有哪些”这篇文章吧。shell的简单使用最近发现shell脚本在平常工作中简直算...
    99+
    2023-06-09
  • Shell常见知识有哪些
    小编给大家分享一下Shell常见知识有哪些,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!Shell常见知识一、用户登陆进入系统后的系统环境变量$HOME 使用者自...
    99+
    2023-06-09
  • DIV常见用法有哪些
    这篇文章主要介绍了DIV常见用法有哪些,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。1.启用div作为编辑器 让div进入编辑状态很简单,只需要: 代码如下:div.cont...
    99+
    2023-06-08
  • Dnsmasq常见用法有哪些
    这篇文章将为大家详细讲解有关Dnsmasq常见用法有哪些,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。Dnsmasq为小型网络提供网络基础设施:DNS,DHCP,路由器通告和网络引导。它被设计为轻量级且占...
    99+
    2023-06-27
  • 常见的Gnome Shell扩展有哪些
    这篇文章主要介绍了常见的Gnome Shell扩展有哪些的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇常见的Gnome Shell扩展有哪些文章都会有所收获,下面我们一起来看看吧。Gnome Shell 是 G...
    99+
    2023-06-27
  • SQLNET.ORA的常见用法有哪些
    这篇文章主要讲解了“SQLNET.ORA的常见用法有哪些”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“SQLNET.ORA的常见用法有哪些”吧!一、IP 黑...
    99+
    2024-04-02
  • C++ typedef常见用法有哪些
    本篇内容主要讲解“C++ typedef常见用法有哪些”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“C++ typedef常见用法有哪些”吧!typedef的4种常见用法:给...
    99+
    2023-07-05
  • 常见的Shell脚本面试题有哪些
    这篇文章主要介绍常见的Shell脚本面试题有哪些,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!Shell脚本是什么、它是必需的吗答:一个Shell脚本是一个文本文件,包含一个或多个命令。作为系统管理员,我们经常需要使...
    99+
    2023-06-04
  • css中常见margin用法有哪些
    小编给大家分享一下css中常见margin用法有哪些,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!margin 1、margi...
    99+
    2024-04-02
  • golang反射常见用法有哪些
    golang反射常见用法有:1、获取对象的类型信息;2、获取和设置对象的属性值;3、动态调用对象的方法;4、是一种复杂的机制。本教程操作环境:windows10系统、golang1.20.1版本、DELL G3电脑。Golang是一种现代的...
    99+
    2023-07-14
  • 常见Flex控件用法有哪些
    小编给大家分享一下常见Flex控件用法有哪些,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!Flex控件分为2种,一种是布局控件,另外一种是元素控件。比如Canva...
    99+
    2023-06-17
  • c++中vector常见用法有哪些
    这篇文章主要讲解了“c++中vector常见用法有哪些”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“c++中vector常见用法有哪些”吧!1、c++ 中 vectorvector有两个参数...
    99+
    2023-06-25
  • Linux Shell常见的命令行格式有哪些
    这篇文章主要介绍“Linux Shell常见的命令行格式有哪些”,在日常操作中,相信很多人在Linux Shell常见的命令行格式有哪些问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Linux Shell常见...
    99+
    2023-06-09
  • Perl命令行有哪些常见用法
    这篇文章主要介绍了Perl命令行有哪些常见用法,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。Perl命令行之替换◆将所有C程序中的foo替换成bar,旧文件备份成.bakpe...
    99+
    2023-06-17
  • VB.NET调用IE常见方法有哪些
    这篇文章给大家分享的是有关VB.NET调用IE常见方法有哪些的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。VB.NET调用IE代码示例:Dim p As New Proce...
    99+
    2023-06-17
  • SQL的常见错误用法有哪些
    今天小编给大家分享一下SQL的常见错误用法有哪些的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。1、LIMIT 语句分页查询是...
    99+
    2023-06-28
  • C++中vector的常见用法有哪些
    C++中vector的常见用法包括: 创建vector:可以通过声明一个vector对象并指定元素类型,或者通过拷贝或移动已有v...
    99+
    2023-10-26
    C++ vector
  • linux的常用shell有哪些
    这篇文章主要介绍“linux的常用shell有哪些”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“linux的常用shell有哪些”文章能帮助大家解决问题。三种shell:1、bourne shel,...
    99+
    2023-06-30
  • 常见HTML5的错误用法有哪些
    这篇文章主要介绍了常见HTML5的错误用法有哪些,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。一、使用section作为div的替代品人们在...
    99+
    2024-04-02
  • 常用的Linux shell有哪些
    这篇文章主要介绍“常用的Linux shell有哪些”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“常用的Linux shell有哪些”文章能帮助大家解决问题。Shell是系统的用户界面,提供了用户与...
    99+
    2023-06-27
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作