曲径通幽论坛

标题: hello world [打印本页]

作者: beyes    时间: 2008-12-15 02:45
标题: hello world
第一个例子
#!/bin/bash
#hello world shell script

printchar="hello world"
echo $printchar

第一行必须
第二行一般为注释

shell 的特征
别名
命名替换
后台处理
变量
管道
模式匹配
特殊字符
作者: beyes    时间: 2008-12-15 02:45
标题: 别名(alias)
执行 alias ,结果:
alias +='pushd .'
alias -='popd'
alias ..='cd ..'
alias ...='cd ../..'
alias beep='echo -en "\\007"'
alias cd..='cd ..'
alias dir='ls -l'
alias l='ls -alF'
alias la='ls -la'
alias ll='ls -l'
alias ls='ls $LS_OPTIONS'
alias ls-l='ls -l'
alias md='mkdir -p'
alias o='less'
alias rd='rmdir'
alias rehash='hash -r'
alias unmount='echo "Error: Try the command: umount" 1>&2; false'
alias you='test "$EUID" = 0 && /sbin/yast2 online_update || su - -c "/sbin/yast2 online_update"'

修改别名 ll 等效为: ll='ls -lh'
alias ll='ls -lh'

作者: beyes    时间: 2008-12-15 03:14
标题: 命令替换
假设在一个目录里有两个文件,分别是:
hello.sh 和 com-change.sh

其中,com-change.h 的内容是
hello.sh
com-change.sh

则执行以下命令:
ls `cat com-change.h` -alh

列出内容为:
beyes@linux-beyes:~/shell_sript> ls `cat com-change.sh` -l
-rw-r--r-- 1 beyes users 23 12-15 03:11 com-change.sh
-rwxr--r-- 1 beyes users 79 12-15 02:26 hello.sh

上面执行的指令中,反引号里的内容就是一种进行命令替换,即是打印出的结果传递给 ls 命令再打印出来。
作者: beyes    时间: 2008-12-15 12:55
标题: 后台处理(nohup)
在后台执行程序(一个终端可以运行多个程序):
nohup tar -czf file.tar.gz file &             // nohup不会自动让程序在后台运行,必须在后面添加 & ,参考" info nuhup"

可以通过 jobs -l 来查看的运行情况。
作者: beyes    时间: 2008-12-15 13:02
标题: 模式匹配
比如:
显示以 txt 为扩展名的文件或显示以 a 开头的文件,这种能力就称为模式匹配。

如:
ls *.txt
作者: beyes    时间: 2008-12-15 13:20
标题: 特殊字符
双引号(“”):用来使 shell 无法认出空格、制表符和其他大多数特殊字符,如 touch "test file" 是建立一个名为 test file 的文件,而不是 test 和 file 两个文件

单引号( ' ):用来使 shell 无法认出所有特殊字符

反引号( ` ):用来替换命令

返斜杠( \\ ):用来使 shell 无法认出其后的特殊字符,使其后的字符失去了特殊的含义

分号( ; )    :允许在一行上放多个命令

&               :命令在后台运行

括号()       :创建成组的命令

大括号{}   :创建命令块

竖杆( | )    :管道表示符

<>&          :表示重定向

* ? [ ] !      :表示模式匹配

$               :变量名的开头

#               :表示注释(第一行出外)

空格,制表符,换行符:当作空白




欢迎光临 曲径通幽论坛 (http://www.groad.net/bbs/) Powered by Discuz! X3.2