精华内容
下载资源
问答
  • 在脚本里创建文件
    千次阅读
    2021-12-04 21:15:33

    要将shell命令放到文本文件中,首先需要用文本编辑器来创建一个文件,然后将命令输入到文件中。
    在创建shell脚本文件时,必须在文件的第一行指定要使用的shell。其格式为:

    #!/bin/bash 
    

    在通常的shell脚本中,井号(#)用作注释行。shell并不会处理shell脚本中的注释行。然而,shell脚本文件的第一行是个例外,#后面的惊叹号会告诉shell用哪个shell来运行脚本(是的,可以使用bash shell,同时还可以使用另一个shell来运行你的脚本)。
    在指定了shell之后,就可以在文件的每一行中输入命令,然后加一个回车符。之前提到过,注释可用#添加。例如:

    #!/bin/bash 
    # This script displays the date and who's logged on 
    date 
    who 
    

    这就是脚本的所有内容了。可以根据需要,使用分号将两个命令放在一行上,但在shell脚本中,可以在独立的行中书写命令。shell会按根据命令在文件中出现的顺序进行处理。

    更多相关内容
  • 创建脚本文件

    千次阅读 2020-10-20 10:46:08
    注:我的集群为:node1(主节点)、node2、node3 所有节点都要创建脚本文件,下面以node1为例: 1. 创建xcall.sh文件 touch xcall.sh 里面添加如下内容: #!/bin/bash params=$@ i=1 for (( i=1 ; i <= 3 ; i ...

    注:我的集群为:node1(主节点)、node2、node3 所有节点都要创建脚本文件,下面以node1为例:

    1. 创建xcall.sh文件

    touch xcall.sh
    
    在里面添加如下内容:
    #!/bin/bash
    params=$@
    i=1
    for (( i=1 ; i <= 3 ; i = $i + 1 )) ; do
        echo ============= node$i $params =============
        ssh node$i "$params"
    done
    

    脚本第一行的内容指定了shell脚本解释器的路径,而且这个指定路径只能放在文件的第一行。第一行写错或者不写时,系统会有一个默认的解释器进行解释。常用的linux系统上默认都是执行/bin/bash来执行我们的shell脚本。

    2. 赋权限—可执行权限

    chmod +x xcall.sh
    

    在这里插入图片描述

    3. 移动脚本到/usr/local/bin/下面

    mv xcall.sh /usr/local/bin/
    
    

    在这里插入图片描述

    4. 使用xcall.sh脚本,出现报错

    在这里插入图片描述

    解决办法:

    在/usr/local/bin/下做jps的软链接
    在这里插入图片描述

    5. 再次执行脚本文件

    在这里插入图片描述

    知识拓展:

    • Shell脚本和我们常用的C语言或者C++语言编写编译出来的bin执行不一样, shell是一种解释性语言,他需要专门的解析器来解析然后执行,不同的脚本语言需要匹配对应的解析器才能解析执行,比如python也是一中解释性编程语言,需要对应的ptthon解释器来解析执行。
    • 我们linux上的shell 是bash shell,所以我们在编写一个脚本的时候需要在第一行添加”#!/bin/bash“. 这句话的意思是告诉执行器需要调用/bin/bash来执行我。
    • 这也是在shell中唯一以#号开头却不代表是注释的意思,其他任何地方以#号开头的语句都会被认为是注释语句而忽略执行,所以这句话只能写在 shell的开头才有效。
    展开全文
  • 二、通过命令创建、编辑、读取文件 1.创建文件 2.编辑文件 3.读取文件 总结 一、什么是shell? Shell 是指一种应用程序,这个应用程序提供了一个界面,用户通过这个界面访问操作系统内核的服务,也可以理解为命令行...


    一、什么是shell?

    Shell 是指一种应用程序,这个应用程序提供了一个界面,用户通过这个界面访问操作系统内核的服务,也可以理解为命令行解析器。

    二、通过命令创建、编辑、读取文件

    1.创建文件

    用文本编辑器(vim/vi)创建一个文件,然后将shell命令输入到文件中

    #vim 文件名
    vim test.sh
    

    2.编辑文件

    创建文件之后点击键盘 i 进入编辑文本模式
    在shell文本文件首行需要指定使用的shell,#!/bin/bash

    #!/bin/bash
    echo "nice day !"
    

    编辑完成之后点击Esc,输入 :wq! 保存退出编辑模式

    3.读取文件

    #读取文件方法1
    cat test.sh
    

    ![在这里插入图片描述](https://img-blog.csdnimg.cn/37cec3e81b9942a595d7bb73fbd9abc6.png

    #读取文件方法2
    while read rows; do echo "Line contents are: $rows"; done <test.sh
    

    在这里插入图片描述

    #读取文件方法3
    cat test.sh |awk '{print "Line contents are:"$0}'
    

    在这里插入图片描述

    总结

    以上是本人在学习shell入门的笔记!

    展开全文
  • CANoe /CAPL 文件操作脚本
  • linux shell脚本获取时间判断时间差,进行计算,自动化
  • 一、脚本练习1(新建) 1.1 需求分析 1.2 实现 1.2.1 直接建立 1.2.2 循环 1.3 检验 二、脚本练习2(删除) 2.1 需求分析 2.2 具体实现 三、脚本练习3(接受用户输入) ​3.1 需求分析 3.2 具体实现 四...

    目录

    一、脚本练习1(新建)

    1.1 需求分析

            1.2 实现

            1.2.1 直接建立

            1.2.2 循环

            1.3 检验

    二、脚本练习2(删除)

            2.1 需求分析

            2.2 具体实现

    三、脚本练习3(接受用户输入)

    ​        3.1 需求分析

            3.2 具体实现

    四、补充【$(),判断文件是否存在】

            4.1 $()的使用

            4.2 [ -f 文件地址 ]

            4.2.1 echo $?

            4.2.2 【示例】

            4.3 if语句

    五、脚本练习4(统计文件行数)

    六、for循环

            6.1 语法结构

            6.2 示例

            6.3 for循环和seq的结合


    一、脚本练习1(新建)

    1.1 需求分析

    1. mkdir {1..10}或for

    【具体实现】

    mkdir feng{1..10}
    
    for i in {1..10}
    do
            mkdir fengdy$i
    done
    

    2. touch liu{1..10}

    for i in {1..10}

    do

    touch liu$i

    done

    3. vim dir10_file10.sh

    4.mkdir -p /feng123

            1.2 实现

            1.2.1 直接建立

    [root@localhost lianxi]# cat dir10_file10.sh
    #!/bin/bash
    
    mkdir -p /feng123
    cd /feng123
    
    mkdir sanle{1..10}
    touch hunan{1..10}
    
    

            1.2.2 循环

    [root@localhost lianxi]# cat dir10_file10_v2.sh
    #!/bin/bash
    
    mkdir -p /feng456
    for i in {1..10}
    do
            mkdir /feng456/sanle$i
            touch /feng456/hunan$i
    done
    

            1.3 检验

    [root@localhost lianxi]# ls /
    back  bin   dev  home    lib    media  opt   root  sbin  sys  usr
    bak   boot  etc  lianxi  lib64  mnt    proc  run   srv   tmp  var
    [root@localhost lianxi]# bash dir10_file10.sh
    [root@localhost lianxi]# ls /
    back  bin   dev  feng123  lianxi  lib64  mnt  proc  run   srv  tmp  var
    bak   boot  etc  home     lib     media  opt  root  sbin  sys  usr
    [root@localhost lianxi]# ls /feng123
    hunan1   hunan2  hunan4  hunan6  hunan8  sanle1   sanle2  sanle4  sanle6  sanle8
    hunan10  hunan3  hunan5  hunan7  hunan9  sanle10  sanle3  sanle5  sanle7  sanle9
    
    [root@localhost lianxi]# bash dir10_file10_v2.sh
    [root@localhost lianxi]# ls /feng456
    hunan1   hunan2  hunan4  hunan6  hunan8  sanle1   sanle2  sanle4  sanle6  sanle8
    hunan10  hunan3  hunan5  hunan7  hunan9  sanle10  sanle3  sanle5  sanle7  sanle9
    

    二、脚本练习2(删除)

     【前期准备】

    [root@localhost lianxi]# cd /feng123
    [root@localhost feng123]# ls
    hunan1   hunan2  hunan4  hunan6  hunan8  sanle1   sanle2  sanle4  sanle6  sanle8
    hunan10  hunan3  hunan5  hunan7  hunan9  sanle10  sanle3  sanle5  sanle7  sanle9
    [root@localhost feng123]# touch sc.txt
    [root@localhost feng123]# ls
    hunan1   hunan2  hunan4  hunan6  hunan8  sanle1   sanle2  sanle4  sanle6  sanle8  sc.txt
    hunan10  hunan3  hunan5  hunan7  hunan9  sanle10  sanle3  sanle5  sanle7  sanle9
    [root@localhost feng123]# cd /feng456
    [root@localhost feng456]# ls
    hunan1   hunan2  hunan4  hunan6  hunan8  sanle1   sanle2  sanle4  sanle6  sanle8
    hunan10  hunan3  hunan5  hunan7  hunan9  sanle10  sanle3  sanle5  sanle7  sanle9
    [root@localhost feng456]# touch sc.txt
    [root@localhost feng456]# ls
    hunan1   hunan2  hunan4  hunan6  hunan8  sanle1   sanle2  sanle4  sanle6  sanle8  sc.txt
    hunan10  hunan3  hunan5  hunan7  hunan9  sanle10  sanle3  sanle5  sanle7  sanle9
    

            2.1 需求分析

    1. 删除 rm -rf

    2. 删除以sanle和湖南开头的文件或文件夹 rm -rf sanle* hunan*

            2.2 具体实现

    [root@localhost lianxi]# vim del_file.sh
    [root@localhost lianxi]# cat del_file.sh
    #!/bin/bash
    
    cd /feng123
    rm -rf sanle* hunan*
    
    cd /feng456
    rm -rf sanle* hunan*
    
    [root@localhost lianxi]# ls /feng123
    hunan1   hunan2  hunan4  hunan6  hunan8  sanle1   sanle2  sanle4  sanle6  sanle8  sc.txt
    hunan10  hunan3  hunan5  hunan7  hunan9  sanle10  sanle3  sanle5  sanle7  sanle9
    [root@localhost lianxi]# ls /feng456
    hunan1   hunan2  hunan4  hunan6  hunan8  sanle1   sanle2  sanle4  sanle6  sanle8  sc.txt
    hunan10  hunan3  hunan5  hunan7  hunan9  sanle10  sanle3  sanle5  sanle7  sanle9
    [root@localhost lianxi]# bash del_file.sh
    [root@localhost lianxi]# ls /feng123
    sc.txt
    [root@localhost lianxi]# ls /feng456
    sc.txt
    

    三、脚本练习3(接受用户输入)

            3.1 需求分析

    1. 接受用户分析 read 【read -p "请输入数字:" num
    2. 新建文件夹 mkdir
    3. 产生序列
    [root@localhost lianxi]# seq 4
    1
    2
    3
    4
    # 产生3到8的一个序列
    [root@localhost lianxi]# seq 3 8
    3
    4
    5
    6
    7
    8
    
    
    [root@localhost lianxi]# aa=$(seq $num)
    [root@localhost lianxi]# echo $aa
    1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
    

            3.2 具体实现

    [root@localhost lianxi]# vim create_file.sh
    [root@localhost lianxi]# cat create_file.sh
    #!/bin/bash
    
    #接受用户输入的文件名前缀
    read -p "请输入文件名前缀:"  f_name
    
    #文件的数量
    read -p "请输入文件的数量:" f_num
    
    #文件存放的路径
    read -p "请输入文件存放的路径,请使用绝对路径:"  f_path
    
    mkdir -p $f_path
    cd $f_path
    
    #实现新建文件的功能
    for i in $(seq $f_num)
    do
            mkdir $f_name$i
    done
    
    #显示新建的文件
    echo "##################################"
    ls $f_path
    echo "##################################"
    [root@localhost lianxi]# bash create_file.sh
    请输入文件名前缀:lihua
    请输入文件的数量:18
    请输入文件存放的路径,请使用绝对路径:/lihua
    ##################################
    lihua1   lihua11  lihua13  lihua15  lihua17  lihua2  lihua4  lihua6  lihua8
    lihua10  lihua12  lihua14  lihua16  lihua18  lihua3  lihua5  lihua7  lihua9
    ##################################
    

    四、补充【$(),判断文件是否存在】

            4.1 $()的使用

    用来得到命令的执行结果,$(命令的执行结果)

    [root@localhost ~]# f_num=$(seq 10)
    [root@localhost ~]# echo $f_num
    1 2 3 4 5 6 7 8 9 10
    

    统计/etc/passwd 有多少行

    [root@localhost ~]# num=$(cat /etc/passwd|wc -l)
    
    [root@localhost ~]# echo $num
    34
    

            4.2 [ -f 文件地址 ]

    判断文件是否存在

            4.2.1 echo $?

    表示上一条命令的返回值。0表示执行成功,非0表示执行失败

            4.2.2 【示例】

    [root@localhost lianxi]# [ -f /lihua ]
    [root@localhost lianxi]# echo $?
    1
    [root@localhost lianxi]# [ -f /etc/passwd ]
    [root@localhost lianxi]# echo $?
    0
    

            4.3 if语句

    语法结构如下

    if 命令  ==》当命令执行成功,就执行命令1,执行失败就执行命令2
    then
        命令1
    else
        命令2
    fi

    五、脚本练习4(统计文件行数)

    题目:用户输入一个文件,统计有多少行,并输出给用户

    [root@localhost lianxi]# vim lines.sh
    [root@localhost lianxi]# cat lines.sh
    #!/bin/bash
    
    #提醒用户输入文件的文件的绝对路径
    read -p "请输入文件的绝对路径:" f_path
    
    #统计文件的行数
    num=$(cat $f_path|wc -l)
    
     #输出文件里有多少行
    echo "${f_path}文件里有${num}行"
    [root@localhost lianxi]# bash lines.sh
    请输入文件的绝对路径:/etc/passwd
    /etc/passwd文件里有34行
    [root@localhost lianxi]# bash lines.sh
    请输入文件的绝对路径:/etc/hosts
    /etc/hosts文件里有2行
    [root@localhost lianxi]# bash lines.sh
    

    【升级版:if语句】

    [root@localhost lianxi]# vim lines.sh
    [root@localhost lianxi]# bash lines.sh
    请输入文件的绝对路径:/lihua
    sorry,sir!你的文件不存在,请检查输入的文件路径
    [root@localhost lianxi]# bash lines.sh
    请输入文件的绝对路径:/etc/hosts
    /etc/hosts文件里有2行
    [root@localhost lianxi]# cat lines.sh
    #!/bin/bash
    
    #提醒用户输入文件的文件的绝对路径
    read -p "请输入文件的绝对路径:" f_path
    
    #对文件进行判断,是否存在
    if [ -f $f_path ]
    then
            #统计文件的行数
            num=$(cat $f_path|wc -l)
    
            #输出文件里有多少行
            echo "${f_path}文件里有${num}行"
    else
            echo "sorry,sir!你的文件不存在,请检查输入的文件路径"
    fi
    
    

    六、for循环

            6.1 语法结构

    in 后面接集合:

      1. 一个命令得到的集合
      2. 一个变量里的集合
      3. 一个文件夹的路径
    for 变量名 in 集合
    do
            命令
    done

    变量名到集合里去取内容,先取集合里的第一个内容,然后去执行命令,再回到集合中取第二个内容,再次执行命令,以此类推,直到所有的内容都取出并执行命令时,循环结束。

            6.2 示例

    [root@localhost lianxi]# vim list_file.sh
    [root@localhost lianxi]# cat list_file.sh
    
    #!/bin/bash
    
    #for i in /boot/*
    for i in $(ls /boot)
    do
            echo "$i 在/boot目录下"
    done
    
    #定义一个字符串,里面的元素用空格隔开,如此就有了众多元素
    sc_singer="李华 晓红 晓燕 冬梅"
    for a in $sc_singer
    do
            echo "有请歌手 $a 演唱:《北京欢迎你》"
    done
    [root@localhost lianxi]# bash list_file.sh
    config-3.10.0-1160.el7.x86_64 在/boot目录下
    efi 在/boot目录下
    grub 在/boot目录下
    grub2 在/boot目录下
    initramfs-0-rescue-8774cbc8b8da42ac9f19c4e528d01d72.img 在/boot目录下
    initramfs-3.10.0-1160.el7.x86_64.img 在/boot目录下
    symvers-3.10.0-1160.el7.x86_64.gz 在/boot目录下
    System.map-3.10.0-1160.el7.x86_64 在/boot目录下
    vmlinuz-0-rescue-8774cbc8b8da42ac9f19c4e528d01d72 在/boot目录下
    vmlinuz-3.10.0-1160.el7.x86_64 在/boot目录下
    [root@localhost lianxi]# vim list_file.sh
    [root@localhost lianxi]# bash list_file.sh
    config-3.10.0-1160.el7.x86_64 在/boot目录下
    efi 在/boot目录下
    grub 在/boot目录下
    grub2 在/boot目录下
    initramfs-0-rescue-8774cbc8b8da42ac9f19c4e528d01d72.img 在/boot目录下
    initramfs-3.10.0-1160.el7.x86_64.img 在/boot目录下
    symvers-3.10.0-1160.el7.x86_64.gz 在/boot目录下
    System.map-3.10.0-1160.el7.x86_64 在/boot目录下
    vmlinuz-0-rescue-8774cbc8b8da42ac9f19c4e528d01d72 在/boot目录下
    vmlinuz-3.10.0-1160.el7.x86_64 在/boot目录下
    有请歌手 李华 演唱:《北京欢迎你》
    有请歌手 晓红 演唱:《北京欢迎你》
    有请歌手 晓燕 演唱:《北京欢迎你》
    有请歌手 冬梅 演唱:《北京欢迎你》
    
    

            6.3 for循环和seq的结合

    [root@localhost lianxi]# vim list_file_seq.sh
    [root@localhost lianxi]# cat list_file_seq.sh
    #!/bin/bash
    
    #for循环和seq的结合
    
    for i in $(seq 5)
    do
            echo "数字:$i"
    done
    
    #read和for、seq的结合使用
    read -p "请输入数字:" num
    for i in $(seq $num)
    do
            echo "数字是$i"
            mkdir -p /root/lianxi/backup_0315/test$i
    done
    [root@localhost lianxi]# bash list_file_seq.sh
    数字:1
    数字:2
    数字:3
    数字:4
    数字:5
    请输入数字:4
    数字是1
    数字是2
    数字是3
    数字是4
    
    [root@localhost lianxi]# ls /root/lianxi/backup_0315
    test1  test2  test3  test4
    

    展开全文
  • shell脚本 创建文件并赋予权限
  • 概述 ——————————————————————————– 平时...我Microsoft SQL Server Management Studio(MSSMS)新建一个查询,再把要合并的SQL脚本文件,一个一个的打开,并复制内容到新建查询中,然后生
  • 描述步骤1:打开程序首先,应打开并使用所使用的计算机。桌面上,单击左下角的Windows按钮(Windows版本Vista,7和8,先前版本的开始按钮),然后搜索程序MATLAB。双击文本“ MATLAB R2013a”...步骤2:创建脚本文件...
  • Powershell 到 EXE 从 Powershell 脚本创建 Windows 二进制文件一些用于创建 EXE 文件的脚本,其中包含嵌入脚本 url 的 Powershell 脚本。 脚本不会将 powershell 脚本转换为另一种语言,例如 C,而是使用运行 ...
  • shell 脚本(批量创建脚本

    千次阅读 2021-05-11 15:11:41
    (创建文20个文件)cd /etc/servicesmkdir -p scriptsvim scirpts .sh#!/bin/bashi= 1,dir=/scirptswhile [ $i -lt 21 ]do touch dir/test$ilet i = $i+1done批量改名:#!/bin/bashi= 1,dir=/scirptswhile [ $i -lt 21...
  • 开发中我们经常会创建适合自己使用的一些基类或者文件模版,使用的时候就需要经常去复制文件,这个时候我们可以创建一个文件模板,然后unity的Project窗口中直接右键创建脚本模板。 1.使用效果 2.创建文件 ...
  • Linux 创建.sh脚本文件

    千次阅读 2022-03-03 21:06:19
    Linux 创建.sh脚本文件
  • Shell脚本实战之文件批量创建和修改

    千次阅读 2021-06-15 10:52:00
    Shell脚本实战之文件批量创建和修改一、脚本要求二、脚本内容三、脚本运行结果 一、脚本要求 1.所有操作/python下 2.批量创建12个以py后缀结尾的文件,文件名中必须包含_hcip,文件名除了_hcip固定字符串外,文件名...
  • 步骤1:选择文本编辑器使用...选择文本编辑器后,启动文本编辑器,打开一个新文件以开始输入shell脚本。步骤2:键入命令和回声语句开始输入您希望脚本运行的基本命令。确保单独的行中键入每个命令。例如,要将单...
  • 教程(1)中,我们是RStudia控制台(console)执行的命令。 这里创建脚本来执行。 RStudio菜单栏----》File--->new File-->...我把文件保持这个路径下,直接执行脚本命令 Rscript test.R.
  • Linux使用shell脚本实现目录创建文件传输前言需求分析与难点实现SSH无密码登录安装Expect动态创建目录发送文件至目标服务器 前言 本人是个java开发,第一次接触devops系统的开发,对shell脚本并不是特别的熟悉,...
  • 相信很多人都会经常遇到unity中新建脚本,打开后变成了杂项文件。今天我就来分享一下我的解决方案: ##方法一: 找到项目文件目录,然后打开一个**.sin结尾的文件文件中就可以显示你的脚本为正常脚本。 ##...
  • 如何Shell脚本中逐行读取文件

    千次阅读 2021-05-12 12:57:47
    这里,我们学习Shell脚本中的3种方法来逐行读取文件。方法一、使用输入重定向逐行读取文件的最简单方法是while循环中使用输入重定向。为了演示,创建一个名为“ mycontent.txt”的文本文件文件内容下面...
  • 微人事项目sql脚本新建vhr库直接运行此sql文件即可
  • 下载后把“按选中对象创建画板.jsx”文件复制到“\Adobe Illustrator XX\Presets(部分版本可能显示为预设)\zh_CN\脚本”文件夹中; 重开AI软件,然后AI菜单“文件”——“脚本”下可以看见你刚才放进去的脚本...
  • 脚本文件和函数文件的区别

    千次阅读 2021-04-11 20:11:07
    MATLAB 提供了一个强大的编程语言和交互式计算环境。我们可以MATLAB 命令行中一次输入一个命令...虽然后缀一致,电脑文件夹看不出区别,可MATLAB目录可以看出区别,带有fx的是函数文件,就是以function开头的文
  • shell脚本创建文件

    2017-06-05 20:14:02
    运行此脚本之后,文件会自动复制并将其进行命名。此脚本文件名为 sh007.sh 之前 之后 脚本程序如下 脚本程序中调用了一个自己编写的C语言程序。 C语言程序如下 此外,还发现一个问题...
  • Linux创建shell脚本文件

    万次阅读 2019-06-10 20:47:33
    Linux创建shell脚本文件 **1. **使用vim xxx.sh创建后缀为.sh的文件; 2. 开头先写shell脚本的声明; 3. 多条命令语句之间用&连接,并且最后一条命令结尾的&符不能省略。 ...
  • bat脚本,按txt每行内容批量创建新txt文件,支持空格
  • 这里是执行一个批量复制粘贴文件脚本。一、使用场景 APP升级的时候,需要修改对应项目下的版本号等。如果项目比较多的话,挨个修改就显得太麻烦了,因此写一个shell脚本势在必行。二、shell脚本解析1、首先是...
  • PDPS数据库创建脚本

    2018-12-26 13:42:49
    用于支持pdps的数据库创建时用的脚本文件。。
  • 如何 Linux 中创建 Shell 脚本

    千次阅读 2021-07-30 17:35:43
    你想你的 Linux 系统中创建一个 Shell 脚本吗? 本指南将带您了解如何使用多个文本编辑器创建 shell 脚本、如何添加注释以及如何使用 Shell 变量。 但是开始创建 shell 脚本之前,让我们了解 Linux 中的 Shell...
  • 脚本放在定时任务代替服务定时执行一些操作比较方便,下面是实现删除文件夹下N天前创建文件的vbs脚本
  • 我们不介意将创建Python脚本的步骤变得更简单一点

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,130,201
精华内容 452,080
热门标签
关键字:

在脚本里创建文件