1. linux下执行.sh文件的方法
       .sh文件就是文本文件,如果要执行,需要使用chmod a+x xxx.sh来给可执行权限。 
      
      是bash脚本么
      可以用touch test.sh #创建test.sh文件
      vi test.sh #编辑test.sh文件
      加入内容
      #!/bin/bash
      mkdir test
      保存退出。
      chmod a+x test.sh #给test.sh可执行权限
      如test,sh文件在 /home/work文件下
      执行
      方法一 本身目录下运行
      进入 cd /home/workwen文件下
      执行 ./test.sh
      命令会在当前目录下创建一个“test”目录。
      方法二 绝对路劲运行
      执行 /home/work/test.sh 
      方法三 本身目录下运行
      sh test.sh
      最后建议:使用
      
      C代码
      1.man sh   
      man sh 来看看sh 的介绍~

linux.sh语法

介绍:
1 开头
 程序必须以下面的行开始(必须放在文件的第一行):
#!/bin/sh
 符号#!用来告诉系统它后面的参数是用来执行该文件的程序。在这个例子中我们使用/bin/sh来执行程序。
 当编写脚本完成时,如果要执行该脚本,还必须使其可执行。
 要使编写脚本可执行:
 编译 chmod +x filename 这样才能用./filename 来运行
2 注释
 在进行shell编程时,以#开头的句子表示注释,直到这一行的结束。我们真诚地建议您在程序中使用注释。
 如果您使用了注释,那么即使相当长的时间内没有使用该脚本,您也能在很短的时间内明白该脚本的作用及工作原理。
3 变量
 在其他编程语言中您必须使用变量。在shell编程中,所有的变量都由字符串组成,并且您不需要对变量进行声明。要赋值给一个变量,您可以这样写:
#!/bin/sh
 #对变量赋值:
 a=”hello world”
# 现在打印变量a的内容:
 echo “A is:”
 echo $a
有时候变量名很容易与其他文字混淆,比如:
 num=2
 echo “this is the $numnd”
 这并不会打印出”this is the 2nd”,而仅仅打印”this is the “,因为shell会去搜索变量numnd的值,但是这个变量时没有值的。可以使用花括号来告诉shell我们要打印的是num变量:
 num=2
 echo “this is the ${num}nd”
 这将打印: this is the 2nd
4 环境变量
 由export关键字处理过的变量叫做环境变量。我们不对环境变量进行讨论,因为通常情况下仅仅在登录脚本中使用环境变量。
5 Shell命令和流程控制
在shell脚本中可以使用三类命令:
1)Unix 命令:
 虽然在shell脚本中可以使用任意的unix命令,但是还是由一些相对更常用的命令。这些命令通常是用来进行文件和文字操作的。
 常用命令语法及功能
 echo “some text”: 将文字内容打印在屏幕上
 ls: 文件列表
 wc –l file   wc -w file   wc -c file: 计算文件行数;计算文件中的单词数;计算文件中的字符数
 cp sourcefile destfile: 文件拷贝
 mv oldname newname : 重命名文件或移动文件
 rm file: 删除文件
 grep ‘pattern’ file: 在文件内搜索字符串比如:grep ’searchstring’ file.txt
 cut -b colnum file: 指定欲显示的文件内容范围,并将它们输出到标准输出设备比如:输出每行第5个到第9个字符cut -b5-9 file.txt千万不要和cat命令混淆,
 这是两个完全不同的命令
 cat file.txt: 输出文件内容到标准输出设备(屏幕)上
 file somefile: 得到文件类型
 read var: 提示用户输入,并将输入赋值给变量
 sort file.txt: 对file.txt文件中的行进行排序
 uniq: 删除文本文件中出现的重复行,比如: sort file.txt | uniq
 expr: 进行数学运算Example: add 2 and 3   为   expr 2 “+” 3
 find: 搜索文件比如:根据文件名搜索find . -name filename -print
 tee: 将数据输出到标准输出设备(屏幕) 和文件比如:somecommand | tee outfile
 basename file: 返回不包含路径的文件名比如: basename /bin/tux将返回 tux
 dirname file: 返回文件所在路径比如:dirname /bin/tux将返回 /bin
 head file: 打印文本文件开头几行
 tail file : 打印文本文件末尾几行
 sed: Sed是一个基本的查找替换程序。可以从标准输入(比如命令管道)读入文本,并将
 结果输出到标准输出(屏幕)。该命令采用正则表达式(见参考)进行搜索。不要和shell中的通配符相混淆。比如:将linuxfocus替换为 LinuxFocus :cat text.file |
sed ’s/linuxfocus/LinuxFocus/’ >newtext.file

awk: awk 用来从文本文件中提取字段。缺省地,字段分割符是空格,可以使用-F指定其他分割符。
 cat  file.txt | awk -F, ‘{print $1 “,”
$3}’这里我们使用,作为字段分割符,同时打印第一个和第三个字段。如果该文件内容如下: Adam Bor, 34,
IndiaKerryMiller, 22, USA命令输出结果为:Adam Bor, IndiaKerry Miller, USA
2) 概念: 管道, 重定向和 backtick
 这些不是系统命令,但是他们真的很重要。
 管道 (|) 将一个命令的输出作为另外一个命令的输入。
 grep “hello” file.txt | wc -l
 在file.txt中搜索包含有”hello”的行并计算其行数。
 在这里grep命令的输出作为wc命令的输入。当然您可以使用多个命令。
 重定向:将命令的结果输出到文件,而不是标准输出(屏幕)。
 > 写入文件并覆盖旧文件
 >> 追加到文件的尾部,保留旧文件内容。
 反短斜线
 使用反短斜线可以将一个命令的输出作为另外一个命令的一个命令行参数。
 命令:
 find . -mtime  -1  -type  f  -print
 用来查找过去24小时(-mtime –2则表示过去48小时)内修改过的文件。如果您想将所有查找到的文件打一个包,则可以使用以下linux 脚本:
 #!/bin/sh
 # The ticks are backticks (`) not normal quotes (‘):
 tar -zcvf  lastmod.tar.gz `find . -mtime -1 -type f -print`
3) 流程控制
 1.if
 “if” 表达式 如果条件为真则执行then后面的部分:
 if ….; then
 ….
 elif ….; then
 ….
 else
 ….
 fi
 大多数情况下,可以使用测试命令来对条件进行测试。比如可以比较字符串、判断文件是否存在及是否可读等等…
 通常用” [ ] “来表示条件测试。注意这里的空格很重要。要确保方括号的空格。
 [ -f "somefile" ] :判断是否是一个文件
 [ -x "/bin/ls" ] :判断/bin/ls是否存在并有可执行权限
 [ -n "$var" ] :判断$var变量是否有值
 [ "$a" = "$b" ] :判断$a和$b是否相等
 执行man test可以查看所有测试表达式可以比较和判断的类型。
 直接执行以下脚本:
 #!/bin/sh
 if [ "$SHELL" = "/bin/bash" ]; then
 echo “your login shell is the bash (bourne again shell)”
 else
 echo “your login shell is not bash but $SHELL”
 fi
 变量$SHELL包含了登录shell的名称,我们和/bin/bash进行了比较。
 快捷操作符
 熟悉C语言的朋友可能会很喜欢下面的表达式:
 [ -f "/etc/shadow" ] && echo “This computer uses shadow passwors”
 这里 && 就是一个快捷操作符,如果左边的表达式为真则执行右边的语句。
 您也可以认为是逻辑运算中的与操作。上例中表示如果/etc/shadow文件存在则打印” This computer uses shadow passwors”。同样或操作(||)在shell编程中也是可用的。这里有个例子:
 #!/bin/sh
 mailfolder=/var/spool/mail/james
 [ -r "$mailfolder" ]‘ ‘{ echo “Can not read $mailfolder” ; exit 1; }
 echo “$mailfolder has mail from:”
 grep “^From ” $mailfolder
 该脚本首先判断mailfolder是否可读。如果可读则打印该文件中的”From” 一行。如果不可读则或操作生效,打印错误信息后脚本退出。这里有个问题,那就是我们必须有两个命令:
 ◆打印错误信息
 ◆退出程序
 我们使用花括号以匿名函数的形式将两个命令放到一起作为一个命令使用。一般函数将在下文提及。
 不用与和或操作符,我们也可以用if表达式作任何事情,但是使用与或操作符会更便利很多。

linux下执行.sh文件的方法和语法的更多相关文章

  1. Linux下执行.sh文件

    Linux下执行.sh文件有两种情况: 一.直接./加上文件名.sh,如运行hello.sh为./hello.sh[hello.sh必须有x权限] 二.直接sh 加上文件名.sh,如运行hello.s ...

  2. linux 下执行.sh文件总是提示permission denied

      linux 下执行.sh文件总是提示permission denied 如果你是root登陆的话(不是的话,切换到root用户,对*.sh赋可执行的权限) chmod 777 *.sh or ch ...

  3. linux 下执行.sh文件提示permission denied

    linux 下执行.sh文件提示permission denied 在脚本文件目录下运行命令,赋予权限: chmod 777 *.sh or chmod +x  *.sh

  4. linux下执行sh文件报错:oswatcher_restart.sh: line 13: ./startOSW.sh: Permission denied

    1 查看执行sh文件的内容 [root@xxxdb0402 dbscripts]# more oswatcher_restart.sh  #!/usr/bin/ksh #export oswdir=` ...

  5. [转帖]Linux下批量替换文件内容方法

    Linux下批量替换文件内容方法 https://www.cnblogs.com/fjping0606/p/4428850.html 刚才用到的命令 原作者写的挺好的记录一下 以后 用. 1:查找fi ...

  6. 报错解决——linux下执行sh出现异常"syntax error: unexpected end of file"

    有时我们在linux下执行一个sh文件,会报错“SYNTAX ERROR:UNEXPECTED END OF FILE”,这个现象主要是工作的系统环境改变造成的. 若最初脚本中是在windows下,使 ...

  7. 解决Linux下编译.sh文件报错 “[: XXXX: unexpected operator”

    本人经常在Linux通过编译 .sh文件来生成工程,之前一直都没问题,代码一直都没变,但是今天编译的时候,却提示错误:

  8. windows与linux下执行.class(包含main方法)

    来源:http://blog.csdn.net/hanqunfeng/article/details/4327325 一般来说,执行一个java文件采用执行jar包的方式最为方便(java -jar ...

  9. Linux下打开超大文件的方法

    Linux下打开超大文件方法 在Linux下用VIM打开大小几个G.甚至几十个G的文件时,是非常慢的. 这时,我们可以利用下面的方法分割文件,然后再打开. 1 查看文件的前多少行 head -1000 ...

随机推荐

  1. 配置nginx php上传大文件

    配置nginx php上传大文件: 1. 修改PHP配置文件中的三项:vim /usr/local/php/etc/php.ini 1.file_uploads 设为On,允许通过HTTP上传文件 2 ...

  2. SwipeRefreshLayout,用最少的代码定制最美的上下拉刷新样式

    下拉刷新框架其实有很多,而且质量都比较高.但是在日常开发中,每一款产品都会有一套自己独特的一套刷新样式.相信有很多小伙伴在个性化定制中都或多或少的遇到过麻烦.今天我就给大家推荐一个在定制方面很出彩的一 ...

  3. java 中int与integer的区别

    int与integer的区别从大的方面来说就是基本数据类型与其包装类的区别: int 是基本类型,直接存数值,而integer是对象,用一个引用指向这个对象 1.Java 中的数据类型分为基本数据类型 ...

  4. Walle,一个开源的web代码发布管理系统

    前言 Walle 一个web部署系统工具,可能也是个持续发布工具,配置简单.功能完善.界面流畅.开箱即用!支持git.svn版本管理,支持各种web代码发布,静态的HTML,动态PHP,需要编译的JA ...

  5. kindEditor 富文本编辑器 使用介绍

    第一版:存放位置:  ---->把该创建的文件包放到javaWeb 过程的 WEB_INF 下:如图所示. 第二步:< kindEditor 插件的引用> :JS引用 <scr ...

  6. uva11754 中国剩余定理+暴力搜索

    是当y的组合数较小时,暴力枚举所有组合,然后用中国剩余定理求每种组合的解,对解进行排序即可 注意初始解可能是负数,所以如果凑不够S个,就对所有解加上M,2M.... 当y的组合数较大时,选择一个k/x ...

  7. cf29d 深搜,dfs序

    #include<bits/stdc++.h> using namespace std; #define maxn 500 ]; int n,head[maxn],tot,a[maxn], ...

  8. Java 产生一个大于等于200,小于300的随机数,且是10的整数倍

    public class Random200_300 { public static void main(String[] args) { int r1 = 0; while (true) { r1 ...

  9. WIN 7 使用shutdown命令设置电脑自动关机

    使用组合键“WIN + R”,在弹出的对话窗“运行”中输入“cmd”,点击“确定”按钮或直接按回车键“Enter”.  设置电脑在一定时间后关机,比如60分钟,在弹出的对话框中,输入“shutdown ...

  10. python http请求类

    # -*- coding: UTF-8 -*- # coding="utf-8" import httplib2 import json from urllib.parse imp ...