- 浏览: 50015 次
- 性别:
文章分类
- 全部博客 (103)
- 一致性哈希算法 (1)
- 云计算 (2)
- Cassandra学习 (2)
- Java网络通信与笔记 (14)
- ZooKeeper学习 (1)
- HBase学习 (1)
- Sqoop学习 (1)
- Java网页开发之 (2)
- Java网络通信框架 (5)
- (memcached)分布式内存对象缓存系统 (1)
- Redis学习 (5)
- Shell学习 (14)
- Linux学习 (10)
- MySQL优化 (17)
- C++ (7)
- HTML5 (5)
- Android学习 (5)
- 网络 (2)
- Node.js (1)
- D3.js (1)
- R语言学习 (3)
- Spark (1)
- CAN协议 (2)
- 解决方案 (0)
最新评论
打开文本编辑器,新建一个文件,扩展名为sh(sh代表shell),扩展名并不影响脚本执行,见名知意就好,如果你用php写shell 脚本,扩展名就用php好了。
输入一些代码:
“#!” 是一个约定的标记,它告诉系统这个脚本需要什么解释器来执行,即使用哪一种Shell。echo命令用于向窗口输出文本。
运行Shell脚本有两种方法。
作为可执行程序
将上面的代码保存为test.sh,并 cd 到相应目录:
注意,一定要写成./test.sh,而不是test.sh。运行其它二进制的程序也一样,直接写test.sh,linux系统会去PATH里寻找有没有叫test.sh的,而只有/bin, /sbin, /usr/bin,/usr/sbin等在PATH里,你的当前目录通常不在PATH里,所以写成test.sh是会找不到命令的,要用./test.sh告诉系统说,就在当前目录找。
通过这种方式运行bash脚本,第一行一定要写对,好让系统查找到正确的解释器。
这里的"系统",其实就是shell这个应用程序(想象一下Windows Explorer),但我故意写成系统,是方便理解,既然这个系统就是指shell,那么一个使用/bin/sh作为解释器的脚本是不是可以省去第一行呢?是的。
作为解释器参数
这种运行方式是,直接运行解释器,其参数就是shell脚本的文件名,如:
这种方式运行的脚本,不需要在第一行指定解释器信息,写了也没用。
再看一个例子。下面的脚本使用 read 命令从 stdin 获取输入并赋值给 PERSON 变量,最后在 stdout 上输出:
运行脚本:
$
输入一些代码:
#!/bin/bash echo "Hello World !"
“#!” 是一个约定的标记,它告诉系统这个脚本需要什么解释器来执行,即使用哪一种Shell。echo命令用于向窗口输出文本。
运行Shell脚本有两种方法。
作为可执行程序
将上面的代码保存为test.sh,并 cd 到相应目录:
chmod +x ./test.sh #使脚本具有执行权限 ./test.sh #执行脚本
注意,一定要写成./test.sh,而不是test.sh。运行其它二进制的程序也一样,直接写test.sh,linux系统会去PATH里寻找有没有叫test.sh的,而只有/bin, /sbin, /usr/bin,/usr/sbin等在PATH里,你的当前目录通常不在PATH里,所以写成test.sh是会找不到命令的,要用./test.sh告诉系统说,就在当前目录找。
通过这种方式运行bash脚本,第一行一定要写对,好让系统查找到正确的解释器。
这里的"系统",其实就是shell这个应用程序(想象一下Windows Explorer),但我故意写成系统,是方便理解,既然这个系统就是指shell,那么一个使用/bin/sh作为解释器的脚本是不是可以省去第一行呢?是的。
作为解释器参数
这种运行方式是,直接运行解释器,其参数就是shell脚本的文件名,如:
/bin/sh test.sh /bin/php test.php
这种方式运行的脚本,不需要在第一行指定解释器信息,写了也没用。
再看一个例子。下面的脚本使用 read 命令从 stdin 获取输入并赋值给 PERSON 变量,最后在 stdout 上输出:
#!/bin/bash # Author : mozhiyan # Copyright (c) http://see.xidian.edu.cn/cpp/linux/ # Script follows here: echo "What is your name?" read PERSON echo "Hello, $PERSON"
运行脚本:
chmod +x ./test.sh $./test.sh What is your name? mozhiyan Hello, mozhiyan
$
发表评论
-
Shell文件包含
2015-09-05 14:20 0像其他语言一样,Shell 也可以包含外部脚本,将外部脚本的内 ... -
Shell输入输出重定向:Shell Here Document,/dev/null文件
2015-09-05 14:16 0Unix 命令默认从标准输 ... -
Shell函数参数
2015-09-05 14:10 0在Shell中,调用函数时可以向其传递参数。在函数体内部,通过 ... -
Shell函数:Shell函数返回值、删除函数、在终端调用函数
2015-09-05 14:07 0函数可以让我们将一个复杂功能划分成若干模块,让程序结构更加清晰 ... -
Shell break和continue命令
2015-09-05 14:05 0在循环过程中,有时候需要在未达到循环结束条件时强制跳出循环,像 ... -
Shell until循环
2015-09-05 14:03 0until 循环执行一系列命令直至条件为 true 时停止。u ... -
Shell while循环
2015-09-05 14:00 0while循环用于不断执行一系列命令,也用于从输入文件中读取数 ... -
Shell for循环
2015-09-08 22:58 463与其他编程语言类似,Shell支持for循环。 for循环一 ... -
Shell case esac语句
2015-09-05 13:57 0case ... esac 与其他语言中的 switch .. ... -
Shell if else语句
2015-09-05 13:54 0if 语句通过关系运算符判断表达式的真假来决定执行哪个分支。S ... -
shell printf命令:格式化输出语句
2015-09-13 16:01 539printf 命令用于格式化输出, 是echo命令的增强版。它 ... -
Shell echo命令
2015-09-13 16:00 1020echo是Shell的一个内部指令,用于在屏幕上打印出指定的字 ... -
Shell数组:shell数组的定义、数组长度
2015-09-12 10:17 598Shell在编程方面比Windows批处理强大很多,无论是在循 ... -
Shell字符串
2015-09-11 22:00 300字符串是shell编程中最常用最有用的数据类型(除了数字和字符 ... -
Shell注释
2015-09-11 22:00 366以“#”开头的行就是注释,会被解释器忽略。 sh里没有多行注 ... -
Shell运算符:Shell算数运算符、关系运算符、布尔运算符、字符串运算符等
2015-09-06 20:19 451Bash 支持很多运算符, ... -
Shell替换:Shell变量替换,命令替换,转义字符
2015-09-06 20:18 847如果表达式中包含特殊 ... -
Shell特殊变量:Shell $0, $#, $*, $@, $?, $$和命令行参数
2015-09-06 20:18 362前面已经讲到,变量名只能包含数字、字母和下划线,因为某些包含其 ... -
Shell变量:Shell变量的定义、删除变量、只读变量、变量类型
2015-09-05 13:09 603Shell支持自定义变量。 定义变量 定义变量时,变量名不加 ... -
Shell脚本语言与编译型语言的差异
2015-09-05 12:58 442大体上,可以将程序设 ...
相关推荐
shell shell教程从入门开始|第一个shell脚本
1. **Shebang(蛇棒)**:脚本的第一行应包含`#!`,后接解释器路径,如`#!/bin/bash`。这指定了脚本应该由哪个shell解释器执行。如果在运行时没有指定解释器,系统会根据shebang选择。 2. **代码注释**:注释是必不...
2. **位置变量**:在Shell脚本中,`$1`、`$2`等是位置参数,分别代表脚本运行时传递的第1个、第2个参数。这里使用它们创建新用户并设置密码。 3. **定时任务与tar备份**:`cron`是一个调度服务,用于定期执行任务。...
接下来,我们会编写第一个Shell脚本,这是一个简单的命令集合,通过执行这些命令,你可以体验到Shell脚本的威力。 在Shell脚本中,变量是存储数据的关键。你可以定义变量来保存文本、数字或其他值。变量的引用可以...
这个脚本非常简单,它的功能是将第一个参数(在这里是“unity”)追加到第二个参数所指向的文件(在这里是“test.log”)中。当Unity正确地调用该脚本后,应该能够在`test.log`文件中看到“unity”。 #### 总结 ...
1. **Shebang**:也称为“井号感叹号”,它是脚本的第一行,用于指定执行该脚本的Shell类型,例如`#!/bin/bash`。 2. **变量声明**:在脚本中,我们可以定义并使用变量来存储数据,如`name="John"`。 3. **控制结构*...
3. **命令行参数**:脚本可以接收命令行参数,例如`$1`, `$2`代表第一个和第二个参数。 4. **流程控制**:包括条件语句(`if`, `else`, `fi`)和循环(`for`, `while`, `until`)。 二、常见Shell命令 在脚本中,...
例如,你可以通过`$1`访问第一个命令行参数,代表要生成的二维码内容。 2. **调用qrencode**:使用`qrencode`命令将数据转换为PNG图片。基本语法是`qrencode -o output.png "your_data"`,这会将"your_data"编码为...
5. **使用AIDL(Android Interface Definition Language)**:创建一个服务,通过AIDL接口暴露调用shell脚本的功能,然后在客户端调用该服务。这种方式适用于跨进程通信。 6. **使用第三方库**:如`android.os....
编写Korn Shell脚本需要使用文本编辑器,如vi编辑器,首先需要添加Shell名称作为第一行,然后构建脚本标头,定义变量,编写脚本主体。 4. 什么是变量?变量是Korn Shell脚本中的一种数据存储方式,允许用户在脚本中...
其中,第一行`#!/bin/bash`称为shebang,指定了解释器路径,确保脚本使用正确的Shell环境执行。 #### Shell脚本的高级功能 - **参数处理**:脚本可以接受命令行参数,使用`$1`, `$2`等变量访问。 - **环境变量**...
本示例“shell脚本的demo”提供了一个基础的教程,旨在帮助初学者理解并掌握Shell脚本的基本语法和用法。下面将详细阐述相关知识点。 1. **Shell脚本简介**: Shell脚本是一种文本文件,包含了一系列命令,当执行...
"如何编写一个shell脚本.doc"文档可能包含具体的步骤和示例,教授如何从无到有地编写一个完整的Shell脚本,包括定义变量、处理输入参数、执行条件判断、进行文件操作等。 通过学习这些知识点,并结合实际的编程练习...
Shell脚本是Linux系统中的一种自动化工具,可以编写一系列命令并将其打包成一个可执行文件,极大地提高了工作效率。书中详细讲解了Bash Shell的基础知识,包括变量、条件语句(如`if-else`)、循环结构(如`for`和`...
函数是Shell脚本的另一个重要概念,它们允许你封装可重用的代码段。通过定义和调用函数,可以提高脚本的可读性和维护性。书中的示例会展示如何声明、传递参数和返回值。 条件测试是控制流程的关键部分。在Shell脚本...
位置参数在Shell脚本中用于传递参数,如"$1"代表第一个参数,"$2"代表第二个参数。这在创建用户及密码时非常有用。 #### 3. 备份日志文件 使用tar命令结合日期标签来备份文件,避免数据被覆盖。计划任务使用crontab...
本书的第三版包含了全面的Shell脚本知识,不仅适合初学者入门,也适合经验丰富的系统管理员和开发人员进一步提高。 Linux系统中常用的Shell类型有多种,例如bash、ksh、csh、zsh等,不同的Shell有不同的语法和特性...
在学习Shell脚本编写时,理解这些基本概念是第一步。随着技能的提升,还可以深入学习更高级的主题,比如进程控制、信号处理、函数库、脚本调试等。此外,编写脚本时遵循良好的编程习惯,如注释、变量命名规范、代码...
程序必须以下面的行开始(必须放在文件的第一行):`#!/bin/sh`,符号#!用来告诉系统它后面的参数是用来执行该文件的程序。在这个例子中我们使用 `/bin/sh` 来执行程序。 当编辑好脚本时,如果要执行该脚本,还必须...