Shell 传递参数

     我们可以在执行 Shell 脚本时,向脚本传递参数,脚本内获取参数的格式为:$nn 代表一个数字,1 为执行脚本的第一个参数,2 为执行脚本的第二个参数,以此类推……比如向脚本传递的第一个参数:$1,实例如下:

 

echo "Shell 传递参数实例!";
echo "执行的文件名:$0";
echo "第一个参数为:$1";
echo "第二个参数为:$2";
echo "第三个参数为:$3";"Shell 传递参数实例!";
echo "执行的文件名:$0";
echo "第一个参数为:$1";
echo "第二个参数为:$2";
echo "第三个参数为:$3";

          常用传参命令:a.传递到脚本的参数个数:$#;          b.遍历所以参数:$*,如"$*"用「"」括起来的情况、以"$1 $2 … $n"的形式输出所有参数。         c.脚本运行的当前进程ID号:$$            d.与$*相同,但是使用时加引号,并在引号中返回每个参数。如"$@"用「"」括起来的情况、以"$1" "$2" … "$n" 的形式输出所有参数。              e.$- 显示Shell使用的当前选项,与set命令功能相同:                      f.显示最后命令的退出状态:$?,其中0表示没有错误,否则其他值都有错误。

     $* 与 $@ 区别:都是引用所有参数。只有在双引号中体现出来。假设在脚本运行时写了三个参数 1、2、3,,则 " * " 等价于 "1 2 3"(传递了一个参数),而 "@" 等价于 "1" "2" "3"(传递了三个参数)。

   在为shell脚本传递的参数中如果包含空格,应该使用单引号或者双引号将该参数括起来,以便于脚本将这个参数作为整体来接收中括号 [] 与其中间的代码应该有空格隔开

1.查看后台进程 ps -ef | grep xxx         kill -9 xxx
2.后台运行 并打印日志 nonup sh xxx.sh > xxx.log &

3.    2>&1  2> 表示stderr标准错误,& 表示等同于的意思,2>&1,表示2的输出重定向等同于1
4.  ll -t 是降序, ll -t | tac 是升序  ,,,,,,按时间排序:ll -rt
5.查看当前目录:pwd

==========================================================================================

grep常用实例

1.查找指定进程: ps  -ef | grep xxx           查找指定进程个数:  ps -ef | grep xxx -c 或 ps -ef | grep -c xxx 
2.从文件中读取关键词进行搜索:  cat test.txt | grep -f test2.txt   这个是查看test.txt中含有test2.txt中的类容,若要查看行号,加-n
3.从文件中查找关键词: grep -nf 'linux'  test1.txt test2.txt
4.找出以's'开头的行内容:cat test.txt | grep ^s   不以s开头: cat test.txt | grep ^[^s]  输出以's' 结尾的: >>>>>>cat test.txt |grep s$
5.找出包含某些字符的,注意这个不是某个关键字,比3范围大:>>>>>>>>>> cat test.txt grep -E "ssss|ffff"
6.rm -rf `ls | grep -v *dmp_bird_seeds_cost_mm*`   反向删除

6.使用-v参数输出不包含指定模式的行
7.
-r 参数递归地查找特定模式

============================================================================================
cp:复制命令,mv命令

1.复制单个文件到目标目录,文件在目标文件中不存在: >>>>>>>> cp test.txt /etc
2.复制整个目录: >>>>>>> cp -a test3 test5        其中 -a 是 all
3.mv [选项] 源文件或目录 目标文件或目录
4.mv 参数:-b:若需覆盖文件,则覆盖前先行备份
                 -f:强制覆盖
                 -t:指定目标目录
 5.文件重命名:>>>>>>> mv test.txt  test.log
 6.  将文件log1.txt,log2.txt,log3.txt移动到目录test3中>>>>>>mv -t /opt/soft/test/test4/ log1.txt log2.txt  log3.txt 
 7.移动当前文件夹下的所有文件到上一级目录 >>>>> mv * ../
 8.把当前目录的一个子目录里的文件移动到另一个子目录里>>>>>> mv dir1/* dir2
 9:如果目录dir2不存在,将目录dir1改名为dir2;否则,将dir1移动到dir2中 >>>> mv dir1 dir2

====================================================

touch命令的使用

1.使用格式;   >>>>>>touch [选项]... 文件...
2.touch命令参数可更改文档或目录的日期时间,包括存取时间和更改时间。
3.创建不存在的文件: >>>>>touch new.txt
4.更新log.log的时间和log2012.log时间戳相同      >>>>touch -r log.log log2012.log
5.更改文件时间戳:>>>>>>> touch -t 201211142234.50 test.txt          其中-t 为time

==================================

mkdir rm 创建,删除命令的使用

1.命令格式: >>>>>mkdir [选项] 目录...
2.创建一个目录 :>>>>>>>>>mkdir dir1
3.递归创建多个目录 :>>>>>>   mkdir -p test2/test22
3.创建权限为777的目录 :>>>  mkdir -m 777 dir1
5.不提示强制删除文件:>>>>>>  rm -f test.txt
6.递归删除目录及目录下面所有文件 :>>>>>>>>  rm -r dir1

===================================================================

cat,more,nl 查看文件的使用

1.nl 可以将输出的文件内容自动的加上行号,比cat -n 会自动补齐,
2.空行也算行:>>>>>>  nl -b a test.log
3.从文件中查找第一个出现"day3"字符串的行,并从该处前两行开始显示输出 :>>>>>>  more +/day3 log2012.log
4.从第100行开始预览:>>>>> more +100 2018.log
5.列一个目录下的文件,由于内容太多,我们应该学会用more来分页显示。这得和管道 | 结合起来 >>>ls -l  | more -5
6.将几个文件合并为一个文件:cat file1 file2 > file

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值