这节课我们一起简单学习一下Shell脚本。
首先我们来新建一个test.sh文件,并在文件内输入一句用来输出的语句,如下所示。
[root@itcast03 ~]# vim test.sh
echo '123'
保存上面的内容,我们试着执行一下test.sh,发现会报如下所示的提示,说没有权限执行。
[root@itcast03 ~]# ./test.sh
-bash: ./test.sh: Permission denied
[root@itcast03 ~]#
因为我们是在root用户下,我们可以使用sh test.sh来强制执行,如下所示,发现执行成功了。
[root@itcast03 ~]# sh test.sh
123
[root@itcast03 ~]#
我们也可以增加对当前目录下的test.sh文件的所有者增加可执行权限,然后再执行test.sh,如下所示,发现执行成功。(我们来说一下chmod u+x test.sh这句话的意思,chmod是权限管理命令change the permissions mode of a file的缩写。u代表所有者,x代表执行权限。 + 表示增加权限。chmod u+x test.sh就表示对当前目录下的test.sh文件的所有者增加可执行权限)
[root@itcast03 ~]# chmod u+x test.sh
[root@itcast03 ~]# ./test.sh
123
[root@itcast03 ~]#
接着我们再定义一个变量并打印出这个变量的值,我们先注释掉echo '123',在文件中注释的话,在前面加"#"就可以。并新增蓝色字体的内容,如下所示。
#直接打印123
#echo '123'
STR="HELLO WORLD"
echo "$STR"
HELLO WORLD
[root@itcast03 ~]#
#定义变量并打印输出变量的值
STR="HELLO WORLD"
echo "$STR"
++ STR='HELLO WORLD'
++ echo 'HELLO WORLD'
HELLO WORLD
[root@itcast03 ~]#
#直接打印123
#echo '123'
#定义变量并打印输出变量的值
#STR="HELLO WORLD"
#echo "$STR"
++ hadoop jar /itcast/hadoop-2.2.0/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.2.0.jar wordcount /wc.txt /wcout
16/10/29 23:20:19 INFO client.RMProxy: Connecting to ResourceManager at itcast03/169.254.254.30:8032
16/10/29 23:20:19 INFO input.FileInputFormat: Total input paths to process : 1
16/10/29 23:20:26 INFO mapreduce.Job: map 0% reduce 0%
16/10/29 23:20:32 INFO mapreduce.Job: map 100% reduce 0%
16/10/29 23:20:40 INFO mapreduce.Job: map 100% reduce 100%
16/10/29 23:20:40 INFO mapreduce.Job: Job job_1477726373472_0008 completed successfully
16/10/29 23:20:40 INFO mapreduce.Job: Counters: 43
#直接打印123
#echo '123'
#定义变量并打印输出变量的值
#STR="HELLO WORLD"
#echo "$STR"
hadoop jar /itcast/hadoop-2.2.0/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.2.0.jar wordcount /wc.txt /wcout2 >> /root/logs 2>&1 &
[root@itcast03 ~]#
echo $CURRENT
2016-10-30
[root@itcast03 ~]#
* * * * * /bin/date >> /root/time
Sun Oct 30 00:56:01 CST 2016
Sun Oct 30 00:57:01 CST 2016
Sun Oct 30 00:58:01 CST 2016
Sun Oct 30 00:59:01 CST 2016
Sun Oct 30 01:00:01 CST 2016