本人新人小白,正在学习shell编程,如果文章中有错误的地方,欢迎大家指正,谢谢大家
1、 下列哪些是合法变量名
XxXxXx
_
12345
HOMEDIR
file.name
_date
file_name
x0-9
file1
slimit
变量命名规则:变量名以字母或下划线字符开始,后面跟0或若干个字母、数字或下划线字符,所以12345
、file.name
、x0-9
不是合法的变量名。
2、 假定宿主目录是users/steve,子目录结构如下图所示
假设刚登录系统,执行了下列命令
docs=doc
let=$doc/letters
prop=$doc/proposals
写出用这些变量完成下列工作的命令
a、 列出doc目录的内容:ls $docs
b、 把letters目录中的所有文件复制到proposals中:cp -r $let/. $prop
c、 把letters目录中文件名包含一个大写字母的文件复制到当前目录中cp $(find $let -name "*[A-Z]*") ./
d、 计数memos目录中的文件数:wc -l $docs/memos
下列命令的作用是什么
a、 ls $let/..
:列出doc目录的内容(…表示上一级目录)
b、 cat $prop/sys.A>>$let/ no.Jsk
:显示doc/proposals
目录下sys.A文件的内容,并将输出的信息追加到doc/letters
目录下no.Jsk文件中。
c、 echo $let/*
:显示doc/letters
目录下所有文件
d、 cp $let/no.JSK $progs
:若progs内存了一个目录,则把letters目录中的no.JSK文件复制到该目录中,若progs内存了一个文件名,则把letters目录中的no.JSK文件复制到该文件中,原文件内容被覆盖,若progs是空值,则命令出错
e、 cd $prop
:进入doc/proposals
目录
3、 编写一个名为nf的程序,显示当前目录中的文件数,键入程序并测试
ls vi| wc -l
4、 编写一个名为whos的程序,显示排好序的已登录用户清单,只显示用户名,不要有其他信息。键入程序并测试
who | cut –c1-8 | sort