从零开始学Shell(二)
$1,$2....${10},${11},
[root@localhost cee]# cat p.sh
#!/bin/bash
#file_name:p.sh
echo $1 $2
[root@localhost cee]# sh p.sh 123 william
123 william
[root@localhost cee]# sh p.sh 123 william 456
123 william
[root@localhost cee]#
[root@localhost cee]# echo \${1..15}
$1 $2 $3 $4 $5 $6 $7 $8 $9 $10 $11 $12 $13 $14 $15
[root@localhost cee]# echo \${1..15} > n.sh
[root@localhost cee]# cat n.sh
$1 $2 $3 $4 $5 $6 $7 $8 $9 $10 $11 $12 $13 $14 $15
[root@localhost cee]# cat n.sh
echo $1 $2 $3 $4 $5 $6 $7 $8 $9 $10 $11 $12 $13 $14 $15
[root@localhost cee]# echo {a..z}
a b c d e f g h i j k l m n o p q r s t u v w x y z
[root@localhost cee]# sh n.sh {a..z}
a b c d e f g h i a0 a1 a2 a3 a4 a5
[root@localhost cee]# cat n.sh
echo $1 $2 $3 $4 $5 $6 $7 $8 $9 ${10} ${11} ${12} ${13} ${14} ${15}
[root@localhost cee]# sh n.sh {a..z}
a b c d e f g h i j k l m n o
[root@localhost cee]# cat q.sh
echo $1 $2 $3 $4 $5 $6 $7 $8 $9
echo $#
[root@localhost cee]# sh q.sh {a..z}
a b c d e f g h i
26
[root@localhost cee]# cat t1.sh
[ $# -ne 2 ] && {
echo "muse two args"
exit 1
}
echo william
[root@localhost cee]# sh t1.sh
muse two args
[root@localhost cee]# sh t1.sh 234
muse two args
[root@localhost cee]# sh t1.sh 234 fds
william
[root@localhost cee]# cat t2.sh
if [ $# -ne 2 ];then
echo "USAGE:/bin/sh $0 arg1 arg2"
exit 1
fi
echo $1 $2
[root@localhost cee]# sh t2.sh
USAGE:/bin/sh t2.sh arg1 arg2
[root@localhost cee]# sh t2.sh arg1
USAGE:/bin/sh t2.sh arg1 arg2
[root@localhost cee]# sh t2.sh arg1 arg2
arg1 arg2
[root@localhost cee]# set -- "I am" handsome oldboy
[root@localhost cee]# echo $#
3
[root@localhost cee]# echo $1
I am
[root@localhost cee]# echo $2
handsome
[root@localhost cee]# echo $3
oldboy
[root@localhost cee]# echo $4
[root@localhost cee]# echo $4$*
I am handsome oldboy
[root@localhost cee]# echo $*
I am handsome oldboy
[root@localhost cee]# echo $@
I am handsome oldboy
[root@localhost cee]# for i in $*;do echo $i;done;
I
am
handsome
oldboy
[root@localhost cee]# for i in $@;do echo $i;done;
I
am
handsome
oldboy
[root@localhost cee]# echo "$*"
I am handsome oldboy
[root@localhost cee]# echo "$@"
I am handsome oldboy
[root@localhost cee]# for i in "$*";do echo $i;done;
I am handsome oldboy
[root@localhost cee]# for i in "$@";do echo $i;done;
I am
handsome
oldboy
[root@localhost cee]# for i;do echo $i;done;
I am
handsome
oldboy
[root@localhost cee]# echo $? #上一次命令的运行结果,0为运行成功,非0为运行不成功;
0
[root@localhost cee]# sed -n '13,14p' /etc/passwd
nobody:x:99:99:Nobody:/:/sbin/nologin
systemd-network:x:192:192:systemd Network Management:/:/sbin/nologin
[root@localhost cee]# ps -ef | grep bash |grep -v grep
root 758 1 0 03:32 ? 00:00:00 /bin/bash /usr/sbin/ksmtuned
root 1692 1520 0 03:32 ? 00:00:00 /usr/bin/ssh-agent /bin/sh -c exec -l /bin/bash -c "env GNOME_SHELL_SESSION_MODE=classic gnome-session --session gnome-classic"
root 3270 3263 0 04:05 pts/0 00:00:01 bash
[root@localhost cee]# echo "oldboy\toldgirl\t"
oldboy\toldgirl\t
[root@localhost cee]# echo -e "oldboy\toldgirl\t"
oldboy oldgirl
[root@localhost cee]# cat noeval.sh
echo \$$#
[root@localhost cee]# cat eval.sh
eval "echo \$$#"
[root@localhost cee]# sh noeval.sh args args2
$2
[root@localhost cee]# sh eval.sh args args2
args2
[root@localhost ~]# cat /tmp/tmp.log
1
2
3
4
5
[root@localhost ~]# vim exec.sh
[root@localhost ~]# cat exec.sh
exec </tmp/tmp.log
while read line
do
echo $line
done
echo OK
[root@localhost ~]# sh exec.sh
1
2
3
4
5
OK
[root@localhost ~]# cat shift.sh
echo $1 $2
if [ $# -ne 2 ];then
shift
echo $1
fi
[root@localhost ~]# sh shift.sh 1 2
1 2
[root@localhost ~]# sh shift.sh 1
1
从零开始学Shell(二)的更多相关文章
- 从零开始学MySQL(二)
鉴于上节篇幅以安装为主,因此对于调用mysql所需要使用的“命令”只是略微提及.随之而来就会带给读者诸多不解了,因为你会思考,这串长长的字符到底有什么特殊的含义呢?聪明的你可能早就抱着好奇心去“摆渡” ...
- 从零开始学Linux[二]:常用操作:用户组、进程、网络、ssh
摘要:Linux基础学习:创建用户组和用户.软件包管理.磁盘管理.进程管理.前后台进程的切换.网络配置.浏览网页.远程登录ssh 第一节,主要介绍一些简单命令,这节介绍一些日常操作. 1.创建用户组和 ...
- 从零开始学Shell(一)
1.$表示普通用户,#表示超级用户.2.sh /home/path/script.sh3.chmod a+x script.sh 增加可执行权限 ./script.sh #./表示当前的 ...
- Java从零开始学十二(构造方法)
一.构造方法 构造方法的主要目的是为类中的属性初始化 二.构造方法的定义格式 class 类名称{ 访问权限 类名称(类型1 参数1,类型2 参数2,…){ 程序语句 ; … // 构造方法没有 ...
- 从零开始学JavaScript二(基本概念)
基本概念 一.区分大小写 在ECMAScript中的一切(变量.函数名.操作符)都是区分大小写的. 如变量名test和Test分别表示两个不同的变量, 二.标识符 所谓标识符,就是指变量.函数.属性的 ...
- 从零开始学算法---二叉平衡树(AVL树)
先来了解一些基本概念: 1)什么是二叉平衡树? 之前我们了解过二叉查找树,我们说通常来讲, 对于一棵有n个节点的二叉查找树,查询一个节点的时间复杂度为log以2为底的N的对数. 通常来讲是这样的, 但 ...
- 从零开始学Python 二
上一章我们已经安装好了Python环境,并且写出了第一个Python程序.下面我们接着继续学习.首先,来分析下上一章我们写的代码. 我们最初的目的是为了可以输出一串有意义的文字,最终选择了英文语句“h ...
- 从零开始学安全(二十七)●利用Nmap对防火墙,IDS,IPS 进行欺骗
先介绍什么是防火墙 ids 并联 ips 串联 来看我们nmap 命令
- 从零开始学安全(二十六)●利用Nmap目标的本版进行探测
通过对对方电脑的服务探测 对本版较低的服务 或者无补丁的服务 可以直入侵 版本探测 version 后边就是版本
随机推荐
- AD域与外部网站域名相同处理办法
环境 域控:Windows Server 2008 r2 AD域:example.cn 问题:DNS可以正常解析外部域名(如www.baidu.com),但是无法解析mail.example.cn 原 ...
- memcache 常用方法
<?php $memcache = new Memcache; //initialised memcahe $memcache->connect("127.0.0.1" ...
- django 2.1 配sql server 2008R2
请教了不少高手和度娘终于把这个事搞定了(基本上断断续续查试了2周时间),,,,,,,, 环境: 1-Microsoft Windows 2-Microsoft SQL SERVER2008 ...
- STM32的型号的命名规则
每种STM32的产品都由16个字母或数字构成的编号标示,用户向ST订货时必须使用这个编号指定需要的产品.这16个字符分为8个部分,下面通过一个例子说明它们的意义: STM32 F C T xxx ST ...
- 移动端项目在ios上输入框聚焦难解决方案
由于引入fastclick导致ios端input.textarea输入框难以点击聚焦,解决方案如下: 找到项目中的fastclick依赖或在main.js中改写fastclick的focus实现.
- ethtools命令详解
1 概述 ethtool 是用于查询及设置网卡参数的命令. 2 命令详解 2.1 命令格式 (1) 语法 ethtool [ -a | -c | -g | -i | -d | -k | -r | -S ...
- JavaScript if 条件语句
JavaScript if 条件语句 使用: if(条件){ }else if(条件){ }else if(条件){ }else{ } 示例: // 判断相等 if(1==1){ } // 判断不等 ...
- (转载)Unity3D开发之编辑器统一修改Text字体
最近遇到一个需求,就是我们在做完一个场景后,美工感觉字体不好看,效果不是很好,想要换一种字体.UGUI的界面已经搭完,如果要一个一个Text寻找,工作量将是巨大.而且作为程序人员是不会容忍自己做这些机 ...
- 使用Flask部署机器学习模型
Introduction A lot of Machine Learning (ML) projects, amateur and professional, start with an aplomb ...
- 远程连接报错“This could be due to CredSSP encryption oracle remediation.”
description: 当远程服务器上没有“Encryption Oracle Remediation" setting in local group policy. 尝试远程连接会出现上 ...