1.关于echo和printf打印输出

如果要使用转义序列,那么需要在echo 后面加上参数 -e来进行识别,下面例子是进行对比:

amosli@amosli-pc:~/learn$ echo -e "1\t2\t3\t"

amosli@amosli-pc:~/learn$ echo "1\t2\t\3\t"
\t2\t\\t

输出彩色输出:

颜色码:重置为0,黑色为30,红色为31,绿色为32,黄色为33,蓝色为34,洋红为35,青色为36,白色为37.

echo -e "\e[31m this is red text" //将终端输出颜色变为红色
echo -e "\e[0m" //重置终端颜色
echo -e "\e[35m" //洋红,其他与此类似

2.查看程序进程

amosli@amosli-pc:~$ pgrep gedit  //pgrep 进程名
//输出进程ID

查年环境变量位置:

格式:

cat /proc/$PID/environ

实例:

amosli@amosli-pc:~$ cat /proc//environ
GNOME_KEYRING_PID=1892USER=amosliLANGUAGE=enLC_TIME=zh_CN.UTF-8COMPIZ_CONFIG_PROFILE=ubuntuHOME=/home/amosliDESKTOP_SESSION=ubuntuXDG_SESSION_COOKIE=cb0be16eb0e8024c05540d520000000c-1387289821.329921-1960133517XDG_SEAT_PATH=/org/freedesktop/DisplayManager/Seat0LC_MONETARY=zh_CN.UTF-8GNOME_KEYRING_CONTROL=/tmp/keyring-T9xO1vUBUNTU_MENUPROXY=libappmenu.soMANDATORY_PATH=/usr/share/gconf/ubuntu.mandatory.pathLOGNAME=amosliGTK_IM_MODULE=ibusDEFAULTS_PATH=/usr/share/gconf/ubuntu.default.pathPATH=/usr/lib/lightdm/lightdm:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/gamesXDG_SESSION_PATH=/org/freedesktop/DisplayManager/Session0LC_ADDRESS=zh_CN.UTF-8DISPLAY=:.0LANG=en_US.UTF-8LC_TELEPHONE=zh_CN.UTF-8XAUTHORITY=/home/amosli/.XauthorityXMODIFIERS=@im=ibusSHELL=/bin/bashLC_NAME=zh_CN.UTF-8GDMSESSION=ubuntuLC_MEASUREMENT=zh_CN.UTF-8LC_IDENTIFICATION=zh_CN.UTF-8QT_IM_MODULE=ibusPWD=/home/amosliXDG_DATA_DIRS=/usr/share/ubuntu:/usr/share/gnome:/usr/local/share/:/usr/share/XDG_CONFIG_DIRS=/etc/xdg/xdg-ubuntu:/etc/xdgLC_NUMERIC=zh_CN.UTF-8LC_PAPER=zh_CN.UTF-8SSH_AUTH_SOCK=/tmp/keyring-T9xO1v/sshSSH_AGENT_PID=1940DBUS_SESSION_BUS_ADDRESS=unix:abstract=/tmp/dbus-78xnDYcrG7,guid=aeebe29452c0ff84e71d27ab0000006eGNOME_DESKTOP_SESSION_ID=this-is-deprecatedSESSION_MANAGER=local/amosli-pc:@/tmp/.ICE-unix/,unix/amosli-pc:/tmp/.ICE-unix/1903XDG_CURRENT_DESKTOP=UnityGPG_AGENT_INFO=/tmp/keyring-T9xO1v/gpg::1GIO_LAUNCHED_DESKTOP_FILE=/usr/share/applications/gedit.desktopGIO_LAUNCHED_DESKTOP_FILE_PID=4681DESKTOP_STARTUP_ID=nautilus--amosli-pc-gedit-1_TIME7717031amosli@amosli-pc:~$

3.变量的定义方式以及输出方式:

amosli@amosli-pc:~$ var=value //对变量赋值 var = value 是错误的 也可是var = "value"

amosli@amosli-pc:~$ echo $var //输出方式1
value
amosli@amosli-pc:~$ echo ${var}//输出方式2
value

实例:variables.sh 

fruit=apple
count=
echo "We have $count ${fruit}(s)"
amosli@amosli-pc:~/learn$ sh variables.sh
We have apple(s)

echo $变量名 即可输出所对应的变量值,如常用的,echo $(JAVA_HOME,HOME,PWD,UID,USER,SHELL,PATH)等等

length={#var} 长度

amosli@amosli-pc:~/learn$ echo ${HOME}
/home/amosli
amosli@amosli-pc:~/learn$ echo ${#HOME} //查看长度,只需要在变量名前加上一个#即可

另外:echo $SHELL =echo $0都可获得shell的版本.

 4.算术操作

amosli@amosli-pc:~/learn$ no1=;
amosli@amosli-pc:~/learn$ no2=;
amosli@amosli-pc:~/learn$ let result=no1+no2;
amosli@amosli-pc:~/learn$ echo $result
amosli@amosli-pc:~/learn$ let no1++
amosli@amosli-pc:~/learn$ echo $no1 amosli@amosli-pc:~/learn$ let no2--
amosli@amosli-pc:~/learn$ echo $no2
amosli@amosli-pc:~/learn$ result=$[no1+no2]
amosli@amosli-pc:~/learn$ echo $result
amosli@amosli-pc:~/learn$ result=$((no1+))
amosli@amosli-pc:~/learn$ echo $result
amosli@amosli-pc:~/learn$ echo "3*12" | bc
amosli@amosli-pc:~/learn$ echo "scale=3;10/3" |bc
3.333
amosli@amosli-pc:~/learn$ echo "sqrt(100)" |bc

linux shell 脚本攻略学习1的更多相关文章

  1. linux shell 脚本攻略学习20--awk命令入门详解

    awk生于1977年,创始人有三个,分别为 Alfred Aho,Peter Weinberger, 和 Brian Kernighan,名称源于三个创始人的姓的首字母. 作用:处理文本文件. awk ...

  2. Linux Shell脚本攻略学习总结:一

    终端打印 终端打印的常用命令有两个:echo和print 首先,我先介绍echo 1.echo echo这个命令接受三种形式的参数,实例如下: echo "Hello World" ...

  3. linux shell 脚本攻略学习19--sed命令详解

    sed(意为流编辑器,英语“stream editor”的缩写)是Unix/linux常见的命令行程序.sed用来把文档或字符串里面的文字经过一系列编辑命令转换为另一种格式输出,即文本替换.sed通常 ...

  4. Linux Shell 脚本攻略学习--四

    linux中(chattr)创建不可修改文件的方法 在常见的linux扩展文件系统中(如ext2.ext3.ext4等),可以将文件设置为不可修改(immutable).某些文件属性可帮助我们将文件设 ...

  5. linux shell 脚本攻略学习3

    1.Bash中的READ命令 #读取n个字符存入变量 read -n number_of_chars variable_name 示例: amosli@amosli-pc:~$ read -n var ...

  6. linux shell 脚本攻略学习2

    1.关于文件描述符和重定向: 文件描述符是与一个打开的文件或数据流相关联的整数.文件描述符0.1以及2是系统预留的. 0——stdin(标准输入) 1——stdout(标准输出) 2——stderr( ...

  7. Linux Shell脚本攻略学习总结:三

    根据扩展名切分文件名 首先,我们先来看两个例子: file_jpg="sample.jgp" name=${file_jpg%.*} echo File name is : $na ...

  8. Linux Shell脚本攻略学习总结:二

    比较与测试 程序中的流程控制是由比较和测试语句来处理的. 我们可以用if,if else 以及逻辑运算符来执行测试,而用一些比较运算符来比较数据项.另外,有一个test 命令也可以用来进行测试.让我们 ...

  9. linux shell 脚本攻略学习12--文件权限详解,chmod命令详解,chown命令详解,chattr命令详解

    文件权限详解 一.chmod命令详解 文件权限和所有权是Unix/Linux文件系统最显著的特征之一.linux中的每一个文件都与多种权限类型相关联,在这些权限中主要分类为3种: 用户(User)是文 ...

  10. linux shell 脚本攻略学习18--grep命令详解

    grep(global search regular expression(RE) and print out the line,全面搜索正则表达式并把行打印出来)是unix/linux中用于文本搜索 ...

随机推荐

  1. 用Visual C#来清空回收站(2)

    四.程序的源代码(recycled.cs).编译方法及运行后的界面: (1).程序的源代码:recycled.cs: using System.IO ; using System.Windows.Fo ...

  2. Kafka:ZK+Kafka+Spark Streaming集群环境搭建(十七)Elasticsearch-6.2.2集群安装,组件安装

    1.集群安装es ES内部索引原理: <时间序列数据库的秘密(1)—— 介绍> <时间序列数据库的秘密 (2)——索引> <时间序列数据库的秘密(3)——加载和分布式计算 ...

  3. JPA(五):映射关联关系------映射单向多对一的关联关系

    映射单向多对一的关联关系 新建Customer.java: package com.dx.jpa.singlemanytoone; import java.util.Date; import java ...

  4. (转)Unity3D工程版本管理方案

    自:http://blog.dou.li/unity3d%E5%B7%A5%E7%A8%8B%E7%89%88%E6%9C%AC%E7%AE%A1%E7%90%86%E6%96%B9%E6%A1%88 ...

  5. Anroid 解决小米和魅族不能在mac上调试

    第一种方法 1.mac->关于本机->系统报告->usb->copy厂商ID** 2.cmd->echo " 0x2a45" >> ~/. ...

  6. 一个小栗子聊聊JAVA泛型基础

    背景 周五本该是愉快的,可是今天花了一个早上查问题,为什么要花一个早上?我把原因总结为两点: 日志信息严重丢失,茫茫代码毫无头绪. 对泛型的认识不够,导致代码出现了BUG. 第一个原因可以通过以后编码 ...

  7. Mathematica 文本界面获得之前的结果

    使用%号做标记.获得文本界面之前的运算结果:

  8. spring boot使用slf4j输出日志

    spring boot使用slf4j输出日志 https://blog.csdn.net/qq442270636/article/details/79406346 Spring Boot SLF4J日 ...

  9. iOS 按钮拖动。

    -(void)testMove { moveBtn = [[UIButton alloc ]init]; moveBtn.frame = CGRectMake(0, 30, 60, 60); move ...

  10. tomcat管理员在远程(不同)机器上访问管理页面

    tomcat8.5管理员默认只能在安装tomcat的机器上访问,如果想在其他机器上访问,则需要进行配置修改 添加用户和权限(<tomcat>\conf\tomcat-users.xml): ...