shell 编程学习笔记

关于"#!/bin/sh"的认识

下面第一块为引用

第一次学shell编程,看的文章中说shell程序必须以"#!/bin/sh"开始,也就认为是这样了,虽然知道在shell中以"#"开始的语句 
都是注释,但也从没认为"#!/bin/sh"也是注释,就像对C语言程序必须有main函数一样毫无怀疑。但前些时候又听说"#!/bin/sh"也 
是注释,可有可无,当时觉得真是一个失败,连基本的语法都分不清。前几天借了一本书,才真正认识了"#!/bin/sh"。shell编程是以"#"为 
注释,但对"#!/bin/sh"却不是。"#!/bin/sh"是对shell的声明,说明你所用的是那种类型的shell及其路径所在。如果没有声 
明,则脚本将在默认的shell中执行,默认shell是由用户所在的系统定义为执行shell脚本的shell.如果脚本被编写为在Korn 
shell ksh中运行,而默认运行shell脚本的为C shell csh,则脚本在执行过程中很可能失败。所以建议大家就把"#!/bin/ 
sh"当成C 语言的main函数一样,写shell必须有,以使shell程序更严密。

 我自己先试着写了一个shell脚本

1、创建一个test.sh的shell脚本

[root@AppServer test]# vi test.sh

#!/bin/sh
a="hello shell code"
num=18721814816
echo $a
echo"this is my phone_num: ${num}"
echo ${num}

2、给test.sh赋予x执行权限 

[root@AppServer test]# chmod a+x test.sh

3、执行test.sh脚本

[root@AppServer test]# ./test.sh  

hello shell code

./test.sh: line 5: echothis is my phone_num: 18721814816: command not found

18721814816

在一的基础上加了一些其他语法

[root@AppServer test]# vi test.sh 

#!/bin/sh
#######################这是我的第一个shell脚本文件####################
# 1、完成编写shell脚本后需要给其赋予-x可执行权限 +x                  #
# 2、如果shell脚本在测试和debug没有问题后可以用root权限将其移到到    #
#    /usr/local/bin/目录中,这样所有用户都可以直接输入脚本名来运行   #
#    ex:  如用当前用户在任意目录直接输入"test.sh"即可执行test.sh   #
######################################################################
a="hello shell code"
num=18721814816
echo $a
echo "this is my phone_num: ${num}"
echo ${num}

#判断startup.sh是否为可执行文件
if [ -x "/usr/local/tomcat/bin/startup.sh" ]; then
    echo "startup.sh 是可以执行的! "
else 
    echo "startup.sh 是不可执行的! "
fi

#判断hehe.txt是否为可执行文件
if [ -x "/ftp_server/test/hehe.txt" ]; then
    echo "hehe.txt是可以执行的! "
else 
    echo "hehe.txt是不可执行的!"
fi
 

相关推荐