shell学习(一)hello world
2016-03-24 00:00
429 查看
1 hello world
“#!” 是一个约定的标记,它告诉系统这个脚本需要什么解释器来执行,即使用哪一种Shell。echo命令用于向窗口输出文本。
2 运行Shell脚本有两种方法。
(1)作为可执行程序
将上面的代码保存为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作为解释器的脚本是不是可以省去第一行呢?是的。
(2)作为解释器参数
这种运行方式是,直接运行解释器,其参数就是shell脚本的文件名,如:
这种方式运行的脚本,不需要在第一行指定解释器信息,写了也没用。
再看一个例子。下面的脚本使用 read 命令从 stdin 获取输入并赋值给 PERSON 变量,最后在 stdout 上输出:
运行脚本:
#!/bin/bash echo "Hello World !"
“#!” 是一个约定的标记,它告诉系统这个脚本需要什么解释器来执行,即使用哪一种Shell。echo命令用于向窗口输出文本。
2 运行Shell脚本有两种方法。
(1)作为可执行程序
将上面的代码保存为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作为解释器的脚本是不是可以省去第一行呢?是的。
(2)作为解释器参数
这种运行方式是,直接运行解释器,其参数就是shell脚本的文件名,如:
/bin/sh test.sh /bin/php test.php
这种方式运行的脚本,不需要在第一行指定解释器信息,写了也没用。
再看一个例子。下面的脚本使用 read 命令从 stdin 获取输入并赋值给 PERSON 变量,最后在 stdout 上输出:
#!/bin/bash echo "What is your name?" read PERSON echo "Hello, $PERSON"
运行脚本:
chmod +x ./test.sh $./test.sh What is your name? mozhiyan Hello, mozhiyan $
相关文章推荐
- -bash: ssh: command not found的解决办法
- windwos Power shell 查询组员
- Shell glob
- python(6)-执行shell命令
- 【shell编程基础1】shell变量篇
- CentOS6.5下通过Shell修改MySQL初始密码,开启远程登录,授权远程登录用户
- linux shell 统计不同类型文件数目
- shell入门
- Impala 2、Impala Shell 和 Impala SQL
- Shell Script Tutorials (0 ~ 62)
- 常用shell笔记
- 01Linux_BASH基本操作
- Shell命令中的 &&,||,&与|
- shell 计算代码运行时间
- bash: ***: command not found
- linux shell 下载维基百科特色条目并统计单词词频
- shell中的点命令与source命令的区别
- 学习 shell脚本之前的基础知识
- HBase shell命令整理
- linux命令---shell脚本调试