Shell scripts简单入门
2016-05-01 14:12
609 查看
shell脚本其实就是纯文本文档,我们可以编辑这个文档,然后让这个档案来帮助我们一次执行多个指令,或者达成某些特定功能。
指令、选项与参数之间的多个空白都会被忽略掉
空白行也会被忽略掉,并且tab同样视为空格
如果读取到一个enter符号,就会尝试改行命令。可以用’\’来转义一个enter。
#后面是批注,不被执行
以bash程序来执行:通过bash shell.sh或许sh shell.sh来执行(shell.sh是我们写好的脚本)。
这时相当于一个子程序中执行,所以在shell.sh中自定义的变量不会保留到父程序当中。除非在脚本中加入export,把自定义变量加入到环境变量
3.用source命令来执行:这时就是在父程序中执行脚本
[j] <> file:表示读写方式打开file,若file不存在就创建它。然后创建一个fd为j的文件描述符,这个文件描述符指向file。若j不存在就默认为0。
2.digit1>&digit2
这个相当于dup2(digit2, digit1)
注意:
[]内的每个组件都要用空格隔开
括号中的变数,最好都以双引号括起来
[]中的常数,最好都以单或者双引号括起来
例子:比如我一个脚本shell.sh,那么我输入./shell.sh 1 2 3
传给我这个脚本的默认参数是
即我可以在我的脚本中$0来表示./shell.sh,$1来表示1。
2.多重判断
function也可以有参数
这里var可以是前面没有声明的
shell脚本中的这个for循环是知道循环次数的,即con的个数是固定的,所以是一种固定循环
第二种写法:
注意事项:
指令的执行时从上到下,从左到右指令、选项与参数之间的多个空白都会被忽略掉
空白行也会被忽略掉,并且tab同样视为空格
如果读取到一个enter符号,就会尝试改行命令。可以用’\’来转义一个enter。
#后面是批注,不被执行
shell脚本执行方式
直接当做命令下达:该档案必须有rx权限,然后必须可以找到该命令,即要么通过绝对路径或相对路径,或者利用环境变量PATH以bash程序来执行:通过bash shell.sh或许sh shell.sh来执行(shell.sh是我们写好的脚本)。
这时相当于一个子程序中执行,所以在shell.sh中自定义的变量不会保留到父程序当中。除非在脚本中加入export,把自定义变量加入到环境变量
3.用source命令来执行:这时就是在父程序中执行脚本
数据重定向
1.cat <> file[j] <> file:表示读写方式打开file,若file不存在就创建它。然后创建一个fd为j的文件描述符,这个文件描述符指向file。若j不存在就默认为0。
2.digit1>&digit2
这个相当于dup2(digit2, digit1)
判断语句
test
例子:test -e /de /* 判断/de是否存在 */
[]
例子:[ -z "$HOME" ] /* 注意空格! */
注意:
[]内的每个组件都要用空格隔开
括号中的变数,最好都以双引号括起来
[]中的常数,最好都以单或者双引号括起来
Shell脚本中的参数
默认参数 $0, $1…例子:比如我一个脚本shell.sh,那么我输入./shell.sh 1 2 3
传给我这个脚本的默认参数是
./shell.sh 1 2 3 $0 $1 $2 $3
即我可以在我的脚本中$0来表示./shell.sh,$1来表示1。
shift
在脚本中使用shift n /* 表示上面的脚本参数要左移n个单位,例如 shift 1,那么现在的1要用$0来表示 */
条件判断
利用if then
1.单层,简单条件判断if [条件];then //条件成立时的语句 fi
2.多重判断
if [条件1];then //条件1成立时的语句 elif [条件2];then //条件2成立时的语句 else //条件1与条件2都不成立时的语句 fi
case判断
语法:function
声明与定义一个function:function fname() { /* 程序段内容 */ }
function也可以有参数
function print() { echo "the first argument $0" /* 这里0代表的是传给print的第一个参数 */ } print 1 2 3 /* 这里类似于传给我们shell的参数一样 1是第二个参数 */
循环
while do done, until don done
for do done
这里var可以是前面没有声明的
shell脚本中的这个for循环是知道循环次数的,即con的个数是固定的,所以是一种固定循环
第二种写法:
shell脚本的追踪与bug
相关文章推荐
- shell简单使用(-)判断
- Shell编程—根据用户输入来输出符号正方形
- PowerShell调用WMI
- linux shell 常用基本语法
- Shell脚本的条件控制和循环语句
- shell awk 入门
- 04- Shell脚本学习--条件控制和循环语句
- Shell脚本的条件控制和循环语句
- 为何bash中一条命令的输出保存到变量之后换行符变成了空格
- Shell grep / sed 学习
- Shell编程:数字装换为字符,以及字符串连接
- Shell-批量巡检服务器脚本
- 使用CMD/PowerShell调用7-Zip压缩文件夹
- Shell编程
- linux Shell脚本编程入门
- Linux-Shell之比较和测试
- SWT编程基础-Display和Shell
- Shell编程入门总结(三)
- shell读取文件每行,并执行命令
- Bash 下的快捷操作