1、

#! /bin/bash

#设置只读变量,只读变量不可修改
myUrl="http://www.baidu.com"
readonly myUrl

#删除变量,unset不能删除只读变量
myUrl1="http://www.sina.com"
unset myUrl1

#运行shell时会同时存在三种变量
#局部变量,环境变量,shell变量

#单引号:单引号中不能有变量,不能有单引号
#双引号:双引号里可以有变量,可以出现转义字符。
your_name="qinjx"
str="Hello,I know your name is \"$your_name\" ! \n"

#拼接字符串
your_name="cye"
greeting="Hello,"$your_name" !"
greeting_1="Hello,$your_name"
echo $greeting $greeting_1

#获取字符串长度
string="abcdefg"
echo ${#string} #输出 7

#提取子字符串,从第二个字符开始截取4个字符。
string="runoob is a great site"
echo ${string:1:4} #输出unoo

#查找子字符串,查找i或者s的位置, 以下脚本中 "`" 是反引号,而不是单引号 "'",
string="runoob is a great company"
echo `expr index "$string" is` #输出8

#数组,定义数组
array_name=(value0,value1,value2,value3)

#读取数组,${数组名[下标]}
valuen=${array_name[n]}

#使用@符号,可以获取数组中的所有元素
echo ${array_name[@]}

#获取数组的长度
length=${#array_name[@]}
#或者
length=${#array_name[*]}
#取得数组单个元素的长度
lengthn=${#array_name[n]}

#shell传递参数,在执行shell脚本向脚本传递参数时,脚本内获取参数的格式为:$n,n为一个数字,1代表执行脚本的第一个参数,2为执行脚本的第二个参数。
echo "shell 传递参数实例"
echo "执行的文件名:$0"
echo "第一个参数为:$1"
echo "第二个参数为:$2"
echo "第三个参数为:$3"

#调用时为
#chmod +x test.sh
#./test.sh 1 2 3
#结果为:
#shell 传递参数实例
#执行的文件名:./test.sh
#第一个参数为:1
#第二个参数为:2
#第三个参数为:3

#输出输入重定向
command > file 将输出重定向到 file。
command < file 将输入重定向到 file。
command >> file 将输出以追加的方式重定向到 file。
n > file 将文件描述符为 n 的文件重定向到 file。
n >> file 将文件描述符为 n 的文件以追加的方式重定向到 file。
n >& m 将输出文件 m 和 n 合并。
n <& m 将输入文件 m 和 n 合并。
"<< tag" 将开始标记 tag 和结束标记 tag 之间的内容作为输

0 是标准输入(STDIN),1 是标准输出(STDOUT),2 是标准错误输出(STDERR)
/dev/null 是一个特殊的文件,写入到它的内容都会被丢弃;如果尝试从该文件读取内容,那么什么也读不到。但是 /dev/null 文件非常有用,将命令的输出重定向到它,会起到"禁止输出"的效果。
$ command > /dev/null 2>&1

2、echo,-n参数可使下一个命令输出不换行

echo -n "The date is: "

date

shell基础学习的更多相关文章

  1. Shell基础学习小结

    0 shell基础概念 Shell是解释性语言,使用脚本编程语言的好处是,它们多半运行在比编译型语言还高的层级,能够轻易处理文件与目录之类的对象:缺点是它们的效率通常不如编译型语言.Shell命令有本 ...

  2. shell基础学习系列(一)

    打开文本编辑器,新建一个文件,扩展名为sh(sh代表shell),扩展名并不影响脚本执行. 输入一些代码: #!/bin/bash echo "Hello World !" &qu ...

  3. Shell基础学习(六) 流程控制

    1.if if的语法格式 if conditon then command1 command2 ``` commandn fi 2.if else if conditon then command1 ...

  4. Shell基础学习(四) echo命令

    1.显示普通的字符串 echo "boring" 2.显示转义字符 echo "\"It is a test!\""; 3.read 命令从 ...

  5. Shell基础学习(三) 传递参数

    我们可以在执行 Shell 脚本时,向脚本传递参数,脚本内获取参数的格式为:$n.n 代表一个数字,1 为执行脚本的第一个参数,2 为执行脚本的第二个参数,以此类推…… 以下实例我们向脚本传递三个参数 ...

  6. Shell基础学习(二) Shell变量

    1.数据类型: 字符串 数组 2.变量的命名规范: 只能以a-z或A-Z开头 中间不能有空格,可以使用_ 不能使用标点符号 不能使用shell的关键字 3.变量类型: 环境变量 局部变量 shell变 ...

  7. Shell基础学习(一) Shell简介

    Shell是什么? Shell是C语言编写的一种程序,用于用户与linux操作系统交互:Shell既是命令语言,又是程序设计语言. Shell脚本是什么? Shell脚本是用Shell编写的脚本程序. ...

  8. ArchLinux下Shell基础学习

    首先来认识脚本语言:通常指的是命令行界面的解析器.(来自维基的解释) 第一部分:认识Shell 大家可以看到这里使用了#!/bin/sh和!/bin/bash.可是俩者有什么区别呢?下图有解释. sh ...

  9. shell基础学习-难点重点学习

    来自shell13问 -e : 啟用反斜線控制字符的轉換(參考下表) -E:關閉反斜線控制字符的轉換(預設如此) -n : 取消行末之換行符號(與 -e 選項下的 \c 字符同意) 要取消一個变量,在 ...

随机推荐

  1. serilization 序列化 transient 不被序列化

    Serizlizable 作用 对于一个存在于Java虚拟机中的对象来说,其内部的状态只保持在内存中.JVM停止之后,这些状态就丢失了.在很多情况下,对象的内部状态是需要被持久化下来的.提到持久化,最 ...

  2. NodeJS入门篇

    在我印象里,“全栈工程师”这个词是NodeJS诞生后才逐渐火起来的,因为NodeJS赋予了JS服务器开发的能力.下面开始从一个小白的角度进军NodeJS... 前言:在学习NodeJS之前是需要安装的 ...

  3. 解决java获取系统时间差8个小时 专题

    在WIN7下发现一些Java的程序获取系统时间比真实时间差了8个小时,怀疑是Java程序沿用了低版本的JDK,获取时间时取的GSM 0时区,而中国是GSM +8,所以查了8个小时,解决办法如下: 修改 ...

  4. 八段代码彻底掌握 Promise

    1.Promise的立即执行性 var p = new Promise(function(resolve, reject){ console.log("create a promise&qu ...

  5. PL/SQL之存储过程和触发器实例

    1.Oracle存储过程实例 /*不带任何参数存储过程(输出系统日期)*/ CREATE OR REPLACE PROCEDURE output_date IS BEGIN DBMS_OUTPUT.P ...

  6. flask中的数据操作

    flask中数据访问: pip install flask-sqlalemy 创建数据: 创建app的工厂 from flask import Flask from flask_sqlalchemy ...

  7. block中self关键字的使用-防止self 被retain一次

    在代码块中使用对象的成员时(成员变量是属性strong,MRC估计是retain时效果一样,使用方法时也一样): 警告: capturing self strongly in this block i ...

  8. 撩课-Python-每天5道面试题-第5天

    一. 给定一个圆心和半径, 以及一个点坐标, 判定该点是否在圆内; 例如: 用户输入圆心: (1, 2) 半径: 2.5 测试点为(2, 2)结果: 判定测试点是在圆内 思路: 结合勾股定理, 计算测 ...

  9. 最简单应用的时间日期选择插件---My97DatePicker

    最简单的应用:http://www.my97.net/dp/demo/resource/2.1.asp

  10. mybatis必知必会一

    入门: 1.每个基于 MyBatis 的应用都是以一个 SqlSessionFactory 的实例为中心的.SqlSessionFactory 的实例可以通过 SqlSessionFactoryBui ...