shell 编程记录。

来源:互联网 发布:mac中文输入法没有了 编辑:程序博客网 时间:2024/04/29 05:29

记录一些shell编程的问题。

有个教程很好------http://c.biancheng.net/cpp/view/6994.html

1.获取返回信息。

如果是返回结果:

cmd

if [ "$?" == "" ]
then
     echo "一个字符"
else
     echo "另一个字符"
fi


如果是输出:
result=`cmd`

if [ "$result" == "" ]
then
     echo "一个字符"
else
     echo "另一个字符"

fi

2.特殊变量说明。

变量说明:
$$
Shell本身的PID(ProcessID)
$!
Shell最后运行的后台Process的PID
$?
最后运行的命令的结束代码(返回值)
$-
使用Set命令设定的Flag一览
$*
所有参数列表。如"$*"用「"」括起来的情况、以"$1 $2 … $n"的形式输出所有参数。
$@
所有参数列表。如"$@"用「"」括起来的情况、以"$1" "$2" … "$n" 的形式输出所有参数。
$#
添加到Shell的参数个数
$0
Shell本身的文件名
$1~$n
添加到Shell的各参数值。$1是第1参数、$2是第2参数…。
我们先写一个简单的脚本,执行以后再解释各个变量的意义
# touch variable
# vi variable
脚本内容如下:
#!/bin/sh
echo "number:$#"
echo "scname:$0"
echo "first :$1"
echo "second:$2"
echo "argume:$@"
保存退出
赋予脚本执行权限
# chmod +x variable
执行脚本
# ./variable aa bb
number:2
scname:./variable
first: aa
second:bb
argume:aa bb
通过显示结果可以看到:
$# 是传给脚本的参数个数
$0 是脚本本身的名字
$1是传递给该shell脚本的第一个参数
$2是传递给该shell脚本的第二个参数
$@ 是传给脚本的所有参数的列表


3.文件包含


像其他语言一样,Shell 也可以包含外部脚本,将外部脚本的内容合并到当前脚本。

Shell 中包含脚本可以使用:
  1. . filename
  1. source filename
两种方式的效果相同,简单起见,一般使用点号(.),但是注意点号(.)和文件名中间有一空格。

例如,创建两个脚本,一个是被调用脚本 subscript.sh,内容如下:
  1. url="http://see.xidian.edu.cn/cpp/view/2738.html"
一个是主文件 main.sh,内容如下:
复制纯文本新窗口
  1. #!/bin/bash
  2. . ./subscript.sh
  3. echo $url
执行脚本:
$chomd +x main.sh./main.shhttp://see.xidian.edu.cn/cpp/view/2738.html$
注意:被包含脚本不需要有执行权限。

4.字符串

字符串是shell编程中最常用最有用的数据类型(除了数字和字符串,也没啥其它类型好用了),字符串可以用单引号,也可以用双引号,也可以不用引号。单双引号的区别跟PHP类似。

单引号

  1. str='this is a string'
单引号字符串的限制:
  • 单引号里的任何字符都会原样输出,单引号字符串中的变量是无效的;
  • 单引号字串中不能出现单引号(对单引号使用转义符后也不行)。

双引号

  1. your_name='qinjx'
  2. str="Hello, I know your are \"$your_name\"! \n"
双引号的优点:
  • 双引号里可以有变量
  • 双引号里可以出现转义字符

拼接字符串

  1. your_name="qinjx"
  2. greeting="hello, "$your_name" !"
  3. greeting_1="hello, ${your_name} !"
  4. echo $greeting $greeting_1

获取字符串长度

  1. string="abcd"
  2. echo ${#string} #输出 4

提取子字符串

  1. string="alibaba is a great company"
  2. echo ${string:1:4} #输出liba

查找子字符串

  1. string="alibaba is a great company"
  2. echo `expr index "$string" is`


0 0
原创粉丝点击