博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Shell
阅读量:4950 次
发布时间:2019-06-11

本文共 1645 字,大约阅读时间需要 5 分钟。

file hello

hello
#!/bin/bash # This is a very simple exampleecho Hello World

执行(有三种方式):

$bash hello

$sh hello

$./hello (由于hello文件中第一行指明了/bin/bash文件,系统会调用/bin/bash程序去解释执行)

1.2 关于输入、输出和错误输出

> 表示输出(标准输出和标准错误输出)重定向符号

>> 表示不清除原文件内容,而追加输出。

例如:

$ ls > ls_result

$ ls -l >> ls_result

稍微复杂一点的

$ find /home -name lost*  2> err_result

在符号“>”前多了个“2”,表示将标准错误输出重定向。

将标准错误输出和标准输出都被存到文件中:

$ find /home -name lost* > all_result 2>&1

简写

$ find /home -name lost* >& all_result

如果出错信息并不重要

$ find /home -name lost* 2> /dev/null

试验:

$ find /home -name lost* > all_result 1>& 2 

$ find /home -name lost* 2> all_result 1>& 2
$ find /home -name lost* 2>& 1 > all_result

另外一个非常有用的重定向操作符是 "-",请看下面这个例子:

$ (cd /source/directory && tar cf - . ) | (cd /dest/directory && tar xvfp -)

该命令表示把 /source/directory 目录下的所有文件通过压缩和解压,快速的全部移动到 /dest/directory 目录下去,这个命令在 /source/directory 和 /dest/directory 不处在同一个文件系统下时将显示出特别的优势。

下面还几种不常见的用法:

n<&- 表示将 n 号输入关闭 

<&- 表示关闭标准输入(键盘)
n>&- 表示将 n 号输出关闭
>&- 表示将标准输出关闭

 

1.3 BASH中对变量的支规定

没有定义,不赋值该变量为空(是NULL,不是0)。

str
#!/bin/bash # give the initialize value to STRSTR="Hello World" echo $STR

一、变量赋值时,‘=’左右两边都不能有空格

二、BASH中的语句结尾不需要分号';'

三、除了在变量赋值和在FOR循环语句头中,BASH中的变量使用必须在变量前加“$"符号。

四、由于BASH程序是在一个新的进程中运行的,所以该程序中的变量定义和赋值不会改变其他进程或原始Shell中同名变量的值,也不会影响他们的运行。

更标准的变量引用方式是${STR},$STR是对${STR}的一种简化。

 

关于整数变量计算,一般通过let和expr这两个指令来实现

let "x = $x + 1" 或 x = `expr $x + 1`

add
#!/bin/bash x=1999 let "x = $x + 1" echo $x x=`expr $x + 1`echo $xx="olympic'"$x echo $x

局部变量

在变量首次被赋值时加上local关键字

local
#!/bin/bash HELLO=Hello function hello { local HELLO=World echo $HELLO } echo $HELLO hello echo $HELLO

 

 

 

 

 

 

 

转载于:https://www.cnblogs.com/jimwind/archive/2013/01/22/2871109.html

你可能感兴趣的文章
wddm 部署问题解决
查看>>
Strict Standards: Only variables should be passed by reference
查看>>
Slab-based Intersection
查看>>
将输入流转为字符串工具类
查看>>
hiho_offer收割18_题解报告_差第四题
查看>>
高斯消元
查看>>
AngularJs表单验证
查看>>
regasm.exe 注册dll
查看>>
什么是死锁,简述死锁发生的四个必要条件,如何避免与预防死锁
查看>>
静态方法是否属于线程安全
查看>>
fegin 调用源码分析
查看>>
Linux的基本命令
查看>>
02号团队-团队任务3:每日立会(2018-12-05)
查看>>
sql 语法大全
查看>>
SQLite移植手记1
查看>>
Java AmericanFlagSort
查看>>
Mysql远程连接报错
查看>>
C# windows程序应用与JavaScript 程序交互实现例子
查看>>
sqlServer去除字段中的中文
查看>>
HashMap详解
查看>>