阿小信大人的头像
Talk is cheap. Show me the code. Linus Torvalds

《linux命令、编辑器与shell编程》笔记2014-09-02 06:23

set使用命令替换功能把位置参数设置为ls -l的输出:

:::bash
ashin@linux:~/test$ ls -l if3.sh
-rwxrwxr-x 1 ashin ashin 490 1月 22 18:16 if3.sh
ashin@linux:~/test$ echo $1

ashin@linux:~/test$ set -- $(ls -l if3.sh ) #因为有-l参数,所以使用--
ashin@linux:~/test$ echo $1
-rwxrwxr-x
ashin@l

......
#Linux/Mac#   #shell 评论[0]阅读全文[1031]

quiz小程序2014-09-02 06:22

在脚本目录下有quiz文件夹,其中有自目录,目录名为题目分类名,子目录中有文本文件,内容为题目详细信息,格式为第一行为题目。第二行为选项个数。后面的为选项。最后一行为正确答案。

hello,____\?
4
hi
ok
world
word
world

脚本:

:::bash
#!/bin/bash

function initialize()
{
#初始化变量
trap 'summarize; exit 0' INT #用户C+c中

......
#Linux/Mac#   #shell 评论[0]阅读全文[959]

调整shell变量的属性2014-09-02 05:13

readonly 变量名

readonly、readonly -p :显示只读属性的变量列表

readonly -f 函数名

readonly -a 数组名:readonly -a s; s[3]=10

declare -r 变量名

####declare用法:

-p 显示变量属性

-a 变量是数组

-f 搜寻命令只找函数

-i 变量是一个整数

-F 显示所有函数式名称及其属性

-r 设定只读变量

-t 设立变量具有trace属性

-x 设为环境变量

......
#Linux/Mac#   #shell 评论[0]阅读全文[810]

shell数组 2014-09-02 05:11

定义数组:a=(1 2 3 4 5) , a=(1 [4]=4 5 )可以不连续,不连续的地方为空。

获取值:${a[index]}

获取所有元素:${a[@]} 返回数字1 2 3 4 5,${a[*]}返回"1 2 3 4 5"

获取元素个数:${#a[@]}, ${#a[*]}

......
#Linux/Mac#   #shell 评论[0]阅读全文[770]

shell高级变量2014-09-02 05:11

####变量

${变量名}

$(命令)

${待测变量:-替换值} 判断变量是否不存在或者为空(冒号) 成立则返回替换值

${待测变量:=替换值} 判断变量是否不存在或者为空(冒号) 成立则赋值为替换值

${待测变量:?错误信息} 判断变量是否不存在或者为空(冒号) 成立则赋值为替换值

${待测变量:+替换值} 判断变量是否存在或者非空(冒号) 成立则返回替换值

####切片

${变量:位置起始点}

${变量:位置起始点:长度}

####取部

......
#Linux/Mac#   #shell 评论[0]阅读全文[1129]

shell工作控制和历史指令2014-09-02 05:10

####工作控制

%%或%+可调用jobs里面现在的工作,%-调用前一个工作

%n 将工作编号为n的进程置于前台来执行 == fg %n

%?s1 调用程序名称中含有s1的工作,?表示搜寻

%./s1找出进程名开头是./s1的工作

C-z暂停进程,然后bg丢到后台 == 指令&

disown %n:移除工作

####历史指令

!-n:执行倒数第n个命令

!!:执行前一个你是指令

!字符串:执行最近一个含有以‘字符串’开头的历史命令

!?字符串?:执行最近一个含有‘字符串’的历史指令

!#:目前所键入的字符串

!!

......
#Linux/Mac#   #shell 评论[0]阅读全文[937]

一些有意思的shell命令2014-09-02 05:04

!$是一个特殊的环境变量,它代表了上一个命令的最后一个字符串。

ashin@linux:~$ ls /home/ashin/test/
bbb.py django_test passwd.txt
ashin@linux:~$ !$
/home/ashin/test/
bash: /home/ashin/test/: 是一个目录
ashin@linux:~$ cd !$
cd /home/ashin/test/
ashin@linux:~/test$


!!执行上一条命令

ashin@li

......
#Linux/Mac#   #shell 评论[0]阅读全文[894]