曲径通幽论坛

 找回密码
 立即注册
搜索
查看: 5801|回复: 5
打印 上一主题 下一主题

hello world

[复制链接]

4918

主题

5880

帖子

3万

积分

GROAD

曲径通幽,安觅芳踪。

Rank: 6Rank: 6

积分
34397
跳转到指定楼层
楼主
发表于 2008-12-15 02:45:10 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
第一个例子
#!/bin/bash
#hello world shell script

printchar="hello world"
echo $printchar

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

shell 的特征
别名
命名替换
后台处理
变量
管道
模式匹配
特殊字符

4918

主题

5880

帖子

3万

积分

GROAD

曲径通幽,安觅芳踪。

Rank: 6Rank: 6

积分
34397
沙发
 楼主| 发表于 2008-12-15 02:45:49 | 只看该作者

别名(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'

4918

主题

5880

帖子

3万

积分

GROAD

曲径通幽,安觅芳踪。

Rank: 6Rank: 6

积分
34397
板凳
 楼主| 发表于 2008-12-15 03:14:43 | 只看该作者

命令替换

假设在一个目录里有两个文件,分别是:
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 命令再打印出来。

4918

主题

5880

帖子

3万

积分

GROAD

曲径通幽,安觅芳踪。

Rank: 6Rank: 6

积分
34397
地板
 楼主| 发表于 2008-12-15 12:55:23 | 只看该作者

后台处理(nohup)

在后台执行程序(一个终端可以运行多个程序):
nohup tar -czf file.tar.gz file &             // nohup不会自动让程序在后台运行,必须在后面添加 & ,参考" info nuhup"

可以通过 jobs -l 来查看的运行情况。

4918

主题

5880

帖子

3万

积分

GROAD

曲径通幽,安觅芳踪。

Rank: 6Rank: 6

积分
34397
5#
 楼主| 发表于 2008-12-15 13:02:01 | 只看该作者

模式匹配

比如:
显示以 txt 为扩展名的文件或显示以 a 开头的文件,这种能力就称为模式匹配。

如:
ls *.txt

4918

主题

5880

帖子

3万

积分

GROAD

曲径通幽,安觅芳踪。

Rank: 6Rank: 6

积分
34397
6#
 楼主| 发表于 2008-12-15 13:20:35 | 只看该作者

特殊字符

双引号(“”):用来使 shell 无法认出空格、制表符和其他大多数特殊字符,如 touch "test file" 是建立一个名为 test file 的文件,而不是 test 和 file 两个文件

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

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

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

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

&               :命令在后台运行

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

大括号{}   :创建命令块

竖杆( | )    :管道表示符

<>&          :表示重定向

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

$               :变量名的开头

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

空格,制表符,换行符:当作空白
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|曲径通幽 ( 琼ICP备11001422号-1|公安备案:46900502000207 )

GMT+8, 2025-6-17 17:07 , Processed in 0.080560 second(s), 21 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表