Linux如何编写shell脚本?

作者&投稿:堂奔 (若有异议请与网页底部的电邮联系)
如何调试Linux shell脚本~

shell也有一个真实的调试模式。如果在脚本"strangescript" 中有错误,您可以这样来进行调试:

sh -x strangescript

  这将执行该脚本并显示所有变量的值。

  shell还有一个不需要执行脚本只是检查语法的模式。可以这样使用:

sh -n your_script

  这将返回所有语法错误。

linux/unix shell l脚本调试方法

Shell提供了一些用于调试脚本的选项,如下所示:

-n
读一遍脚本中的命令但不执行,用于检查脚本中的语法错误

-v
一边执行脚本,一边将执行过的脚本命令打印到标准错误输出

-x
提供跟踪执行信息,将执行的每一条命令和结果依次打印出来

使用这些选项有三种方法,一是在命令行提供参数

$ sh -x ./script.sh二是在脚本开头提供参数

#! /bin/sh -x第三种方法是在脚本中用set命令启用或禁用参数



#! /bin/sh
if [ -z "$1" ]; then
set -x
echo "ERROR: Insufficient Args."
exit 1
set +x

编写shell脚本 首先你要有Linux命令的基础,怎么进入文件,怎么执行文件,有什么命令等等。
我们的shell 类型有很多,常见的shell环境有sh,bash,csh,zsh等等。在Linux的脚本中可以最常见的就是 sh或者shell。在shell脚本中最开始 要指定shell环境。于是乎我们有了shell的沙邦:
/bin/sh 或者/bin/bash
shell脚本的格式:shell脚本一般是以*.sh 为名字,在权限上面是有可执行权限x的也就是chmod u+x *.sh
命令的执行:3种:
sh 脚本路径/脚本名
cd 脚本路径 && ./脚本名
soure 脚本路径/脚本
写一个最简单的脚本吧:
[root@linuxprobe ~]#vim 1.sh
/bin/sh
echo "this is my frist scripts,more and more linux ,you can read 《Linux就该这样学》"
[root@linuxprobe ~]#chmod u+x 1.sh
[root@linuxprobe ~]#./1.sh
this is my frist scripts,more and more linux ,you can read 《Linux就该这样学》
学习Linux需要多学多练

  1. 一般以#!/bin/sh开头(不是必须要写,但一定要单独一行),指定执行这个脚本的shell程序(也可以用#!/bin/zsh或其他),然后就是堆命令了。

  2. Linux的shell脚本支持很多功能,加上Linux高度模块化的命令,完全可以用shell脚本写出复杂的程序。

  3. 以上只是简单介绍如何开始写shell脚本,如果要写复杂的脚本,还需要深入学习相关知识(如if——fi、case——esac等结构)。

  4. 当然,还需要给脚本加上可执行权限(chmod +x ./file.sh),否则可以用sh ./file.sh方式执行脚本(这里的sh是执行脚本所需shell,命令也可以是zsh ./file.sh或其他)。

  5. 整个shell脚本,其实就相当于你在终端输入的一系列命令,如果想在shell里做什么,就先想想在终端可以做什么吧,字符的的连接,就是直接用 "" 双引号,输出,变量定义无 $ 符号,但是使用时一定要加上 $ 符号。

  6. "="  赋值符号,两边一定不能有空格,这和其他语言有区别,尤其是你还有自己代码美观风格时特别注意,否则会报语法错误!

  7. for 中的数组内容是以 " " 空格分隔,而非 "," 逗号分格。

  8. 条件判断 [ true ] 中括号 后面需要有一个空格,但是两个中括号之间不能有空格如 [[ true ]]。

  9. while 条件判断可以用 () 括号,也可以用 [[ ]] 中括号。

  10. 如果用windows写shell,一定要注意换行符格式
    而非
    , 需要借助一些编辑器(如notepad++)更改换行符格式!




怎样在Linux下编程?需要什么技术?
在Linux下编程不需要什么特别的技术,你只需要掌握Linux操作系统的使用方法,然后在里面安装你所需要编程语言的IDE即可。 Linux系统下是兼容大部分编译软件的,比如Java语言应用最广泛的是eclipse,它具备Linux版本,而且用起来和Windows下差别不大。 Linux生态圈还有一款广为人知的可以写代码的软件,那就是vim,如果你在Linux...

linux权限数字表示法linux权限s
4.每一个权限对应一个相对的组织,比如所有者,组,其他用户 5.接下来我们改变文件权限,在linux可读r可用4表示,可写W可用2表示,X用1,那么文件的最高权限等于4+2+1=7,两两或者三个组合即可赋予文件具体权限,命令:chmod664XXX.XXX 6.赋予完成我们可利用命令再次查看文件权限,数值是否跟我们设...

怎么写LINUX的SHELL?
比如:将linuxfocus 替换为LinuxFocus :cat text.file | sed 's\/linuxfocus\/LinuxFocus\/' > newtext.file awk: awk 用来从文本文件中提取字段。缺省地,字段分割符是空格,可以使用-F指定其他分割符。cat file.txt | awk -F, '{print $1 "," $3 }'这里我们使用,作为字段分割符,同时打印第一个和第三个...

linux sfdisk命令详解
1、sfdisk命令是硬盘分区工具程序,能够显示分区的设置信息,并且检查分区是否处于正常。2、sfdisk命令还能够用来建立分区。sfdisk命令的具体命令的语法格式为sfdisk[参数]。参数:-d 显示硬盘分区的设置 -g 输出模块的载入信息 -l 显示后硬盘分区的相关设置 -s 显示分区的大小,单位为区块 -T 显示所有sfd...

linux slocate命令详解
slocate命令是linux下的一个文件管理命令,slocate命令主要有一个功能,具体介绍如下:slocate本身就是具有一个数据库,里面存放了系统中文件与目录的相关信息,因此可以用于查找文件与目录。参考范例:如果使用指令”slocate”显示文件名中含有关键字”fdisk”的文件路径信息,具体命令如下:[root@linuxcool ~...

如何使用Linux shell编程来进行系统管理和网络管理
从程序员的角度来看, Shell本身是一种用C语言编写的程序,从用户的角度来看,Shell是用户与Linux操作系统沟通的桥梁。用户既可以输入命令执行,又可以利用 Shell脚本编程,完成更加复杂的操作。在Linux GUI日益完善的今天,在系统管理等领域,Shell编程仍然起着不可忽视的作用。深入地了解和熟练地掌握Shell编程,是每一个Linux...

如何搭建Linux下的c\/s开发模式?
最简单的C\/S模式就是数据库在Linux下,安装一个MYSQL模式,然后开发客户端程序完成逻辑操作,将数据存入到MYSQL数据库中.这个就是LINUX下最简单的标准C\/S模式开发方式 已赞过 已踩过< 你对这个回答的评价是? 评论 收起 bai_du_2000 2007-02-07 · 超过17用户采纳过TA的回答 知道小有建树答主 回答量:...

linux in-s命令怎么用
步骤如下:1、首先,连接相应linux主机,进入到linux命令行状态下,等待输入shell指令。2、在linux命令行下输入shell指令:ln -s \/home\/httpd\/html\/test \/var\/test 。3、键盘按“回车键”运行shell指令,此时会看到成功对\/home\/httpd\/html\/test目录创建了一个软链接到\/var\/test。

linux中的rws中的s是什么权限,如何赋予?
答:linux中的rws中的s为特殊权限,赋值方式同样和普通的文件操作是一样的,命令如下:chmod 1755 filename。同样对,rwx、s\/S,t\/T进行一个解释:1.r(Read,读取):对文件而言,具有读取文件内容的权限;对目录来说,具有浏览目 录的权限。2.w(Write,写入):对文件而言,具有新增、修改文件内容的...

Linux系统如何安装和使用shell编写的工具supportconfig
supportconfig作为Linux系统shell编写的工具,其功能是非常强大的,但还是有很多人对supportconfig工具不了解,不知如何使用supportconfig工具,下面小编就简单的给大家介绍下Linux安装使用supportconfig的方法。   一、supportconfig的安装 可以通过yast进行安装,也可以通过zypper命令进行安装,安装命令如下: 直接使用源进行安装...

乐至县18689967957: Linux如何编写shell脚本?
豆华感昌: 一般以 #!/bin/sh 开头(不是必须要写,但一定要单独一行),指定执行这个脚本的shell程序(也可以用#!/bin/zsh或其他),然后就是堆命令了.Linux的shell脚本支持很多功能,加上Linux高度模块化的命令,完全可以用shell脚本写出复杂的程序. 以上只是简单介绍如何开始写shell脚本,如果要写复杂的脚本,还需要深入学习相关知识(如if——fi、case——esac等结构). 当然,还需要给脚本加上可执行权限(chmod +x ./file.sh),否则可以用 sh ./file.sh 方式执行脚本(这里的sh是执行脚本所需shell,命令也可以是zsh ./file.sh或其他).

乐至县18689967957: linux下如何编写shell脚本 - 2012 -
豆华感昌: 我对shell脚本的认识,除了执行过同事写的shell 脚本外,其他一无所知,为了让自己强大,我决定自己研究shell脚本,也许在你看来很简答,没必要说这么多废话,但是我希望在我的技术blog里记录下来每次的学习的动机,与思想过程,并且我...

乐至县18689967957: 如何写一个linux 的shell脚本? -
豆华感昌: 简单的说,你把你在终端输入的命令放在一个文件里,这个文件就成了shell脚本 比如你编辑一个文件叫 helloworld.sh 内容是 echo "Hello world!" 你把helloword.sh变成可执行的,就是在终端输入 chmod +x helloworld.sh 然后运行./helloworld.sh 你就成功滴写好了一个shell脚本

乐至县18689967957: linux中如何编写shell脚本? -
豆华感昌: 用VIM在终端中 vim shell.sh 回车然后写脚本,.保存然后./shell.sh运行或者bash空格shell.sh 运行...

乐至县18689967957: linux下如何写个SHELL脚本,每天执行这么几句命令: -
豆华感昌: 每天自动执行肯定是要用一个crontab的 脚本可以这样写: #!/bin/bash PRO=ps x|grep p|grep -v grep|awk '{print $1}' kill -9 $PRO service httpd start 脚本上面即可实现了 如果要每天自动执行,那么需要添加一条crontab 如果你的P进程是apache进程,那么直接start就行,如果不是那么要restart 0 1 * * * /usr/local/encode/apachectl restart 上面提到的只能在/usr/local/encode下执行是说明你的服务直接执行的脚本

乐至县18689967957: 怎样编写Linux shell script -
豆华感昌: 1.How to write shell script ? a.首先用任何的编译器(vi,vim,kwrite,....)编写一个shell script;b.然后按照下面的方法给你编译的shell script添加可执行属性;chmod 添加(删除)属性 文件名称 例如:chmod +x your_script_name 或者chmod ...

乐至县18689967957: linux环境下shell脚本编写 -
豆华感昌: 假设.out文件在/home目录下: 1.在命令行窗口下直接敲 /home/.out 回车就运行了. 2.shell脚本的话,如下: #!/bin/bash /home/.out =========================================== 要求不高的话,可以看《linux就该这么学》或者《鸟哥linux私房菜》中专门讲shell脚本的那章,很快能入门. 系统一些的学法,可以看《linux命令行和shell脚本编程宝典》,里面关于基础的、高级的用法都有讲到,很完整. =========================================== 不知道我对你问题的理解对不对头.:)

乐至县18689967957: Linux 简单Shell脚本编程
豆华感昌: 有一个方法可以实现 脚本大概执行过程是这样的 输入文件名以后把文件名赋予变量A 然后LS -AL 列出当前目录下的所有文件并sed 提取出文件名 然后用FOR循环逐个对比变量A和文件名 如果有相同的文件名 则ls -l 文件名 并用sed提取表示文件类型的那个字符 如果字符是D 则echo 是目录 如果字符时- 则echo 是一般文件 其他符号类似 如果对比完了没有相同的 就echo 没有此文件 好了 思路是这样的 脚本就不写了 另外推荐一本书 《linux命令、编辑器与SHELL编程》 我从头到尾看完了 除了C的那部分没看完以外 这本书如果你能完整的看完 对于提升你的水平很有帮助

乐至县18689967957: 在linux中,如何编写一个shell脚本来实现如下功能? -
豆华感昌: #!/usr/bin/expect set timeout 10spawn ssh pcs@11.17.1.2expect "*Password*"send "密码\r"expect ">"send "ls;cd back/rate/;run.sh\r"expect eof

乐至县18689967957: 求助写一个 简单的 Linux Shell 脚本 -
豆华感昌: 1创建脚本 vim 1.sh2编辑内容#!/bin/bash a=hello echo "$a"3执行脚本 bash 1.sh 定义变量a=hello 输出变量$a,就是hello

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网