从零开始学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 后边就是版本
随机推荐
- [MacOS] Genymotion***下载模拟器方法
其它就不说了,我用的是某个工具. 将以下地址加入到白名单 https://cloud.genymotion.com http://dl.genymotion.com
- Python 语言来编码和解码 JSON 对象
Json函数: json.dumps: Python标准库中的json模块,集成了将数据序列化处理的功能. 将 Python 对象编码成 JSON 字符串 语法: json.dumps(obj, sk ...
- Hdu2039 三角形
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2039 三角形 Time Limit: 2000/1000 MS (Java/Others) Me ...
- Linux+Jenkins环境搭建
一.安装基础环境 1. yum -y install java-1.8.0-openjdk.x86_64 #安装1.8jdk 2. 查看java 版本 [root@localhost djanggo_ ...
- git 分支命名规范
为规范开发,保持代码提交记录以及 git 分支结构清晰,方便后续维护,现规范 git 的相关操作. 主要规范两点: git 分支命名规范 git 提交记录规范 1. git 分支命名规范 git 分支 ...
- Angular7 表单
Angular 表单 input.checkbox.radio. select. textarea 实现在线预约功能 html 文件 <h2>人员登记系统</h2> <d ...
- 剑指offer(35)数组中的逆序对
题目描述 在数组中的两个数字,如果前面一个数字大于后面的数字,则这两个数字组成一个逆序对.输入一个数组,求出这个数组中的逆序对的总数P.并将P对1000000007取模的结果输出. 即输出P%1000 ...
- 2019年1月6日 没有nainai吃 习题1
1列举布尔值是False的所有值 0,False,'',[],{},(),None 2根据范围获取其中3和7整除的所有数的和,并返回调用者:符合条件的数字个数以及符合条件的数字的总和 def func ...
- kettle 连接 Oracle 异常
场景重现 新安装的 kettle(pdi-ce-7.0.0.0-25) 连接 Oracle 11G R2 报错如下: 解决办法 到 Oracle 官网 JDBC Downloads 下载对应的 ojd ...
- 委托&&异步
private void ShowMessage(string message) { this.BeginInvoke(new MethodInvoker(delegate { txtSysMessa ...