关于shell
shell学习,目前最流行的shell被称为Bash(Bourne Again Shell) 。提到shell一般指的都是bash shell。
shell是一个命令解释器.事实上, 所有的UNIX命令和工具再加上公共程序, 对于shell脚本来说,都是可调用的.也就是说,linux的操作命令是可以被当做shell脚本的命令来调用的。比起vbs等
语言来讲shell容易了很多。
bash shell在一些特殊情况如:资源密集型的任务, 尤其在需要考虑效率时;应考虑要使用Perl, Tcl, Python, Ruby -- 或者是更高层次的编译语言比如C/C++, 或者是Java.
调用一个脚本
编写完脚本之后,你可以使用sh scriptname, 或者bash scriptname来调用这个脚本. (不推荐使用sh scriptname, 因为这禁用了脚本从stdin【一个最简单的小程序,它的功能是从键盘输
入字符,然后将其送到控制台。】中读数据的功能. ) 更方便的方法是让脚本本身就具有可执行权限, 通过chmod命令可以修改.
如果这个脚本以一个"sha-bang"(#!)行开头, 那么脚本将会调用合适的命令解释器来运行.
最后一步, 在脚本被测试和debug之后, 你可能想把它移动到/usr/local/bin下, (当然是以root身份), 来让你的脚本对所有用户都有用. 这样以来, 用户就可以在命令行上简单的输入
scriptname [ENTER]就可以运行这个脚本了.
出于安全考虑, 除在/usr/local/bin等目录外用户调用脚本必须使用./scriptname这种形式.
stdout(【unix】标准输出(设备))
+++++++++++++++++++++++++++++++++++++++
注意$与"及'的用法
$用于表示变量
"与'需要前后对应 "该符号内均表示字符
`该符号为执行命令符号
具体脚本参考:
#!/bin/bash
echo "Time is `date +%Y%m%d%H%M%S`"
prefix=datetestfile
suffix=$(date +%Y%m%d)
filename=$prefix.$suffix
echo $filename
exit 0
++++++++++++++++++++++++++++++++++++
*随机数
date命令有许多的输出选项. 比如%N将以十亿分之一为单位表示当前时间. 这个选项的一个有趣的用法就是用来产生一个6位的随机数.
date +%N | sed -e 's/000$//' -e 's/^0//'
sed -e 's/000$//' -e 's/^0//'
# 去掉开头和结尾的0