Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/shell/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/batch-file/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux 复制文件和文件夹并执行命令的简单shell脚本_Linux_Shell_Ubuntu - Fatal编程技术网

Linux 复制文件和文件夹并执行命令的简单shell脚本

Linux 复制文件和文件夹并执行命令的简单shell脚本,linux,shell,ubuntu,Linux,Shell,Ubuntu,我以前没有写过任何Shell脚本,但我必须编写一个简单的Shell脚本来完成以下任务: 我将把所有需要的文件保存在一个文件夹中,并将其作为tar文件与这个shell脚本捆绑在一起;因此,当用户运行shell脚本时,需要将相应的文件复制到相应的目标 副本的签署如下: 将plugin.so文件复制到/usrlib/mozilla/plugins/ 将.so库文件复制到/usr/local/lib/ 将某些头文件目录(文件夹)复制到/usr/local/include/ 最后,需要进行ldconfig

我以前没有写过任何Shell脚本,但我必须编写一个简单的Shell脚本来完成以下任务:

我将把所有需要的文件保存在一个文件夹中,并将其作为tar文件与这个shell脚本捆绑在一起;因此,当用户运行shell脚本时,需要将相应的文件复制到相应的目标

副本的签署如下:

  • 将plugin.so文件复制到/usrlib/mozilla/plugins/

  • 将.so库文件复制到/usr/local/lib/

  • 将某些头文件目录(文件夹)复制到/usr/local/include/


  • 最后,需要进行ldconfig。

    基本上,您可以在脚本中添加可以在终端内部键入的任何命令。然后,您有两个选项来执行它:

  • 使用
    sh您的_script.sh
    从终端执行它。使用此解决方案,您甚至不需要授予它执行权限
  • 授予它执行权限,并使用
    /your_script.sh
    运行它
  • 对于第二种解决方案,您必须以一个名为
    shebang
    的文件开始。因此,您的脚本将如下所示:

    #!/bin/sh
    
    cp path/to/source path/to/destination
    cp path/to/source path/to/destination
    cp path/to/source path/to/destination
    
    ldconfig
    
    echo "Done!"
    
    没有别的了。只需一个接一个地编写命令。 第一行是所谓的
    shebang
    ,告诉shell脚本使用哪个解释器

    注意:shell脚本的扩展名通常是
    .sh
    ,但实际上您可以按自己的喜好命名文件。这个扩展毫无意义


    很好的脚本

    我需要打包这个脚本以及提到的库、插件文件和头文件。所以,谁想安装我的插件,他们只需要运行这个脚本,它将安装在他们的Linux插件machine@arunarun,您不能简单地创建一个包含所有内容的tar.gz文件并调用此脚本
    Install.sh
    ?你也可以把tar.gz文件上传到某个地方,然后让脚本下载,解压,然后做任何你需要的事情,在这种情况下,你可以向人们提供脚本,而不是其他任何东西。这是一篇硕士论文。所以,我只打算压缩所有文件和文件夹以及这个脚本,并创建一个tar.gz文件。因此,用户需要下载tar.gz并解压缩它,然后他们只需要执行脚本文件来安装插件。我有一个疑问,在这个例子中,我不知道应该如何编写源路径。例如,我只是想将我的npplugin.so文件从解压缩文件夹复制到/usrlib/mozilla/plugins/location。使用绝对路径,因为你不知道用户将在哪里提取文件。我还需要在这个脚本中做一些其他事情。首先我需要检查ubuntu版本,如果它大于或等于12,那么我需要复制更多的文件。如何在shell脚本中进行条件检查?