shell入门笔记2:字符串、数组、echo与printf

说明:

本文是关于http://c.biancheng.net/cpp/shell/的相关笔记

shell字符串

字符串可以用单引号,也可以用双引号,也可以不用引号。

 1 #!/bin/bash
 2
 3 ##字符串
 4
 5 #不加引号:
 6 #无法出现;
 7 echo a
 8 echo a;b
 9
10 #单引号:
11 #单引号里的任何字符都会原样输出,单引号字符串中的变量替换是无效的;
12 #单引号字符串中不能出现单引号(对单引号使用转义符后也不行)。
13 str=‘this is a string‘
14 echo ${str}
15 str_1=‘$str‘
16 echo ${str_1}
17 #str_2=‘\‘a‘
18 #echo str_2
19
20 #双引号:
21 #双引号里可以有变量替换;
22 #双引号里可以出现转义字符。
23 your_name=‘wuyifan‘
24 str="Hello, I know that you are \"$your_name\"!"
25 echo ${str}
26
27 #拼接字符串
28 greeting="hello,"$your_name"!"
29 greeting_1="hello,${your_name}!"
30 echo $greeting"/"$greeting_1
31
32 #获取字符串长度
33 string="abcd"
34 echo ${#string}
35
36 #提取子字符串
37 string="alibaba is a great company"
38 echo ${string:1:4}
39
40 #查找子字符串:
41 #索引
42 #expr index $string $substring
43 #在字符串$string中所匹配到的$substring的第1个字符第一次所出现的位置。
44 echo `expr index "$string" is`
45 echo `expr index "$string" at`

字符串

shell数组

bash支持一维数组(不支持多维数组),并且没有限定数组的大小。

类似于C语言,数组元素的下标由0开始编号。获取数组中的元素要利用下标,下标可以是整数或算术表达式,其值应大于或等于0。

 1 #!/bin/bash
 2
 3 ##定义数组
 4
 5 #()中以空格或者换行符分隔
 6 names=("ljq" "ymq" "lc")
 7 names_1=(
 8 "ljq"
 9 "ymq"
10 "lc"
11 )
12 #还可以单独定义数组的各个分量
13 names_2[0]="ljq"
14 names_2[1]="ymq"
15 names_2[2]="lc"
16 #可以不使用连续的下标,而且下标的范围没有限制
17
18 ##读取数组
19 echo "first name: ${names[0]}"
20 echo "second name: ${names[1]}"
21 echo "third name: ${names[2]}"
22 #使用@或*可以获取数组中的所有元素
23 echo ${names_1[*]}
24 echo ${names_2[@]}
25
26 ##获取数组的长度:与获取字符串的长度相同
27 #获取数组元素的个数
28 echo ${#names[*]}
29 echo ${#names[@]}
30 #获取数组单个元素的长度
31 echo ${#names[2]}

数组

echo命令与printf命令

echo是Shell的一个内部指令,用于在屏幕上打印出指定的字符串。

printf命令用于格式化输出, 是echo命令的增强版。它是C语言printf()库函数的一个有限的变形,并且在语法上有些不同。
注:

printf 不像 echo 那样会自动换行,必须显式添加换行符(\n)。
printf 命令的语法:
printf  format-string  [arguments...]
format-string 为格式控制字符串,arguments 为参数列表。

这里仅说明与C语言printf()函数的不同:
printf命令不用加括号。
format-string可以没有引号,但最好加上,单引号双引号均可。
参数多于格式控制符(%)时,format-string可以重用,可以将所有参数都转换。
arguments使用空格分隔,不用逗号。

 1 #!/bin/bash
 2
 3 #format-string为双引号
 4 printf "%d %s\n" 1 "abc"
 5
 6 #单引号与双引号效果一样
 7 printf ‘%d %s\n‘ 1 "abc"
 8
 9 #没有引号也可以输出
10 printf %s abcdef
11 echo
12
13 #格式只指定了一个参数,但多出的参数仍然会按照该格式输出,format-string被重用
14 printf %s abc def
15 echo
16 printf "%s\n" abc def
17 printf "%s %s %s\n" a b c d e f g h i j
18
19 #如果没有arguments,那么%s用NULL代替,%d用0代替
20 printf "%s and %d \n"
21
22 #如果以%d的格式来显示字符串,那么会有警告,提示无效的数字,此时默认置为0
23 printf "The first program always prints‘%s,%d\n‘" Hello Shell

echo与printf

时间: 2024-08-05 02:32:28

shell入门笔记2:字符串、数组、echo与printf的相关文章

shell入门笔记1:执行方式、运行方式、变量、替换、运算符

说明: 本文是关于http://c.biancheng.net/cpp/shell/的相关笔记 shell的两种执行方式 交互式(interactive) 解释执行用户的命令,用户输入一条命令,Shell就解释执行一条. 批处理 (batch) 用户事先写一个Shell脚本(Script),其中有很多条命令,让Shell一次把这些命令执行完,而不必一条一条地敲命令. 运行shell脚本的两种方法 作为可执行程序 ./test.sh 作为解释器参数 /bin/bash test.sh 注意: 1.

shell入门笔记1:执行方式、运行方式、变量、替换

说明: 本文是关于http://c.biancheng.net/cpp/shell/的相关笔记 shell的两种执行方式 交互式(interactive) 解释执行用户的命令,用户输入一条命令,Shell就解释执行一条. 批处理 (batch) 用户事先写一个Shell脚本(Script),其中有很多条命令,让Shell一次把这些命令执行完,而不必一条一条地敲命令. 运行shell脚本的两种方法 作为可执行程序 ./test.sh 作为解释器参数 /bin/bash test.sh 注意: 1.

shell入门笔记

编写Hello World脚本并执行脚本 两种方法 1.ls -a 查看所有的文件 2.mkdir test.sh  创建一个名为test.sh的文件 3.cd test.sh 进入到test.sh这个文件中 4.vim test.sh  打开vim并进入到test.sh这个文件中 5.i  (insert 插入,编辑) 6.写入脚本 #!/bin/sh #echo "123456"此一行为注释 echo "Hello World"     echo为输出命令,单独

SHELL脚本攻略(学习笔记)--1.2 echo和printf打印输出

1.2.1 echo的引号问题 关于echo的用法,注意点就是单引号和双引号的特殊情况.以打印“Hello World!”为例. [[email protected] tmp]# echo Hello World! Hello World! [[email protected] tmp]# echo 'Hello World!' Hello World! [[email protected] tmp]# echo "Hello World!" #双引号不能打印感叹号 -bash: !&

Shell 入门笔记(一)

Shell简介 在开发过程中Linux系统经常接触和使用的,Shell 是我们用户使用 Linux 的桥梁,是C 语言编写的程序.Shell 是一种命令语言,同时一种程序设计语言.对大多数开发人员来说,掌握Shell的基本使用是一门必修课. 运行第一个Shell程序 1.新建shell执行文件 [[email protected] test]# vi testshell.sh 2.在文件中输入以下内容: #!/bin/bash                #约定     echo "Hello

<LINUX >bash shell 入门 --linux学习笔记

首先说下我个人对于shell的理解,我觉得shell是一种通过各种控制语句将linux命令进行集合实现批处理的一种脚本语言. shell编程入门其实很简单,语法知识并不多,但是高级shell编程就很难,因为shell是用户和linux之间的桥梁,要编写高质量的shell脚本,就需要用户对linux有很全面的认识. 这里我们只分析shell脚本的语法知识,如想透彻的学习linux还需多努力. shell结构       1.#!指定执行脚本的shell 2.#注释行 3.命令和控制结构 创建she

shell script 入门 笔记

shell script 入门 在 shell script 的撰写中还需要用到底下的注意事项: 1.  指令的执行是从上而下.从左而右的分析与执行: 2.  指令的执行就如同第五章内提到的: 指令.选项不参数间的多个空白都会被忽略掉: 3.  空白行也将被忽略掉,而且 [tab] 按键所推开的空白同样规为空格键: 4.  如果读取到一个 Enter 符号 (CR) ,就尝试开始执行该行 (或该串) 命令: 5.  至亍如果一行的内容太多,则可以使用『 \[Enter] 』来延伸至下一行: 6.

Shell入门之脚本管理学习笔记

1.shell介于操作系统与用户之间,负责解释命令行 2./etc/shells 记录了系统支持的有效登录的shell 3./etc/passwd 最后一位可以看到用户默认的shell 4.直接输入shell的名称 可以切换shell 5.shell命令的记录可以用history查看 history -c 清除 历史命令存放在.bash_history文件中 6.shell的指令可以用 alias 别名 = 实际名 来替换 取消则用 unalias 别名 7.shell变量 <1>定义变量 变

Shell脚本笔记(五)Shell数组

Shell数组 1.定义数组 语法一:    array=(val1 val2 val3) 语法二:   array=($(order))  或者  array=(`order`) 2.打印数组 echo ${array[3]} echo ${array[*]} 3.删除数组 unset array[2] unset array 4.数组截取替换 同字符串操作略 原文地址:https://www.cnblogs.com/Shadowplay/p/8284149.html