现在的位置: 首页 > 综合 > 正文

shell学习

2014年02月19日 ⁄ 综合 ⁄ 共 823字 ⁄ 字号 评论关闭

管道:我们可以使用管道符|来连接进程.在Linux系统中,由管道连接起来的进程可以自动运行,就如同在他们有一个数据流一样.在下面的这个例子中,我们要使用sort命令来排序ps的输出.而如果我们不使用管道,我们就要分几步来完成。

Shell三种基本命令:内建命令,Shell函数以及外部命令。

Shell变量赋值:变量名=值    中间没有空格。

IO重定向简单说就是一个过程,这个过程捕捉一个文件,或者命令,程序,脚本升值脚本中的代码块的输出,然后把捕捉到的输出,作为输入发送给另外一个文件,命令,程序或者脚本。

Shell执行跟踪 set -x   set +x

export 修改或者显示环境变量

env 显示环境变量

参数扩展 Shell Parameter Expansion

位置参数 Positional Parameter 

=={有个疑问: $# 指的是参数的个数  $*所有的位置参数等同于$1
$2……
 
}

  

#!/bin/sh 
  echo \$#=$#
  for i in $*
  do    echo $i
    done

对上面的程序输入 i say  "this  a is  dog"

输出的是以下内容

 $#=3

i

say

this

is

a

dog

参数个数3个,  $*却貌似冒出6个。。why


read

命令替换

expr

eval  .eval命令将会首先扫描命令行进行所有的替换,再执行命令。该命令使用于那些一次扫描无法实现其功能的变量。该命令对变量进行两次扫描。这些需要进行两次扫描的变量有时候被称为复杂变量。

$((expr)) 算数扩展,返回算术值

let   进行算术运算

for循环

练习了一下:

case ${1##*.tar.} in
    bz2)
        echo '1'
        ;;
    gz)
        echo '2'
        ;;
esac

for I in $(seq 10)
do
    echo $I
    multiply=$(($multiply*$I))
    done

echo 'the number is' $multiply

变量替换:点击打开链接

命令的结果输出作为变量的值

var=$(命令)


shell if 点击打开链接

抱歉!评论已关闭.