从零开始学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 后边就是版本
随机推荐
- spring boot 配置多数据源
https://www.jianshu.com/p/b2e53a2521fc
- mybites
[mybatis-spring] http://www.mybatis.org/spring/zh/index.html 使用spring mybatis 中间件 方便使用 mybatis [myba ...
- 二进制包安装MYSQL——
yum install libaio -y #安装mysql依赖包tar zxf mysql-5.5.59-linux-glibc2.12-x86_64.tar.gz mv mysql-5.5.59- ...
- sqlserver with(nolock)
所有Select加 With (NoLock)解决阻塞死锁 在查询语句中使用 NOLOCK 和 READPAST 处理一个数据库死锁的异常时候,其中一个建议就是使用 NOLOCK 或者 READPAS ...
- CSS 初知
CSS 初知 举例 人 { 身高:175cm; 体重:70kg; 肤色:黄色 } 描述 CSS 指层叠样式表 (Cascading Style Sheets) 样式定义如何显示 HTML 元素 样式通 ...
- iOS开发 -------- AFNetworking实现简单的断点下载
一 实现如下效果 二 实现代码 // // ViewController.m // AFNetworking实现断点下载 // // Created by lovestarfish on 15/1 ...
- linux基础之grep
grep: Global search REgular expression and Print out the line 作用: 文本搜索工具,根据用户指定的模式对目标文本逐行进行匹配检查,打印匹配 ...
- Globecom 2018 投稿过程
Globecom 2018 投稿过程 IEEE 通信领域旗舰型会议 Globecom 2018 将于近日提交 Camera-Ready 稿件.回顾今年投稿过程,虽麻烦不断但也不算特别曲折,本篇随笔记录 ...
- Linux常用命令——文件搜索命令
Linux常用命令——文件搜索命令 Linux 以#号开头的内容都是内容描述或配置项 find 描述:文件搜索 语法:find [搜索范围] [范围条件] . 当前目录 示例:[root@local ...
- Failed to auto-configure a DataSource: 'spring.datasource.url' is not specified and no embedded datasource could be auto-configured.
从报错信息中,我们就可以分析出错误原因是触发了数据源的自动化配置,然而当前项目其实并不需要数据源.查其根源是依赖方提供的API依赖中引用了一些多余的依赖触发了该自动化配置的加载. 如何解决 为了解决上 ...