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. google map放大缩小地图去除 ctrl+,直接用鼠标放大缩小

    如图,最近突然需要ctrl+鼠标滚动,才可以放大缩小地图: 这个问题也困扰了我很久,这个解决办法也是在看到一个帖子才发现的,所以记录一下,如图: map = new google.maps.Map(d ...

  2. ssh tunnel

    https://peppoj.net/2012/10/tunnel-http-traffic-encrypted-using-polipo-and-ssh/ --------------------- ...

  3. Docker创建MySQL容器环境两部曲

    1:下载MySQL镜像 需要执行以下命令,确保主机或者VM联网,从官网下载mysql的最新镜像(镜像版本以官网为主) docker  pull  mysql 下载成功后执行 docker image ...

  4. 让你的Python代码更加pythonic

    http://wuzhiwei.net/be_pythonic/ 何为pythonic? pythonic如果翻译成中文的话就是很python.很+名词结构的用法在中国不少,比如:很娘,很国足,很CC ...

  5. 最小公倍数 SRM 661 Div1 250: MissingLCM

    Problem Statement The least common multiple (denoted "lcm") of a non-empty sequence of pos ...

  6. HK Openstack Summit 归来有感

    4天的Icehouse openstack Summit终于结束,从香港又回到了北京,我们的产品反响相当不错,吸引了很多的注意力和商谈.可是实际上我最近过得很憋屈,心灰意冷,没有了当初那么拼命的动力. ...

  7. gdbserver 移植与多线程调试

    在嵌入式linux平台使用gdb调试进行远程调试需要安装gdbserver,gdbserver工作在目标板上,通过串口或者网线与主机上的gdb互联实现远程调试. Gdbserver需要根据不同的嵌入式 ...

  8. 用一条sql取得第10到第20条的记录

    因为id可能不是连续的,所以不能用取得10<id<20的记录的方法. 有三种方法可以实现:一.搜索前20条记录,指定不包括前10条语句:select top 20 * from tbl w ...

  9. Hotmail Smtp邮箱发送的端口

    1.最近有项目需求做监控报警. 2.使用Smtp发邮件时,网上找了一大堆,Smtp服务是:smtp.live.com   端口是:25或587,试了好多次都不行.原来端口是465. 3.发送时,我启用 ...

  10. Hello World程序演示Qt项目的建立、编译、运行和发布

    一.Qt项目的建立 1.选择项目模板. 选择"文件-->新建文件或工程",在选择模板页面选择Qt C++项目中的"Qt Gui应用"一项,然后单击&quo ...