通过例子学习编写shell

时间:2022-07-24
本文章向大家介绍通过例子学习编写shell,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

我先在window环境创建了一个hello.sh的脚本,然后加入代码:

#!/bin/bash
echo "hello world!"

在linux下编译的时候出现了

xx@xx:/xx/xx/xx/test$ ./hello.sh 
-bash: ./hello.sh: /bin/bash^M: 解释器错误: 没有那个文件或目录

然后百度查了下,发现这是由于脚本文件在保存时使用了DOS文件格式造成的,所以在linux下先创建脚本编辑就没问题了。

xx@xx:/xx/xx/xx/test$ vim hello.sh
  1 #!/bin/bash
  2 echo "hello world"

然后保存,退出vim

xx@xx:/xx/xx/xx/test$ ./hello.sh
-bash: ./hello.sh: 权限不够
xx@xx:/xx/xx/xx/test$ chmod 777 hello.sh 
xx@xx:/xx/xx/xx/test$ ./hello.sh 
hello world!

应该编辑完后,对hello.sh进行授权,然后运行。

#!是一个约定的标记,它告诉系统这个脚本需要什么解释器来执行,即使用哪一种 Shell;后面的/bin/bash就是指明了解释器的具体位置。 echo 命令用于向标准输出文件(Standard Output,stdout,一般就是指显示器)输出文本。在.sh文件中使用命令与在终端直接输入命令的效果是一样的。

现在改动一个稍微复杂的脚本

#!/bin/bash
echo "hello world!"
echo "What is your name?"
read PERSON
echo "Hello, $PERSON"

运行脚本

./example
hello world!
What is your name?

继续输入字符

xintiaobao
Hello, xintiaobao

脚本中,read PERSON中表示从终端读取用户输入的数据,并赋值给 PERSON 变量。read 命令用来从标准输入文件(Standard Input,stdin,一般就是指键盘)读取用户输入的数据。 echo "Hello,