perl程序文件中的第一行:#!/usr/bin/perl

'#!'这个符号源自于unix。'#!/usr/bin/perl'-其实是个具有特殊意义的注释,实际上它是告诉操作系统,这个文件中的内容,应该由存放在/usr/bin/下的perl程序执行。而在Windows下这个是不需要的,...

perl中#!/usr/bin/perl意义:


'#!'这个符号源自于unix。'#!/usr/bin/perl'-其实是个具有特殊意义的注释,实际上它是告诉操作系统,这个文件中的内容,应该由存放在/usr/bin/下的perl程序执行。而在Windows下这个是不需要的,而大家习惯于写上#!perl,只是为了表明这是一个perl程序。
        perl解释器通常都被放在/usr/bin/perl 或/usr/local/bin/perl 中。
        如果不是这样,则需要找到你自己机器上perl 的存放地点,然后使用那个路径。在Unix 系统中,可能使用如下一行找到perl:#! /usr/bin/env perl。
用途:
这个符号-!#,通常在Unix系统的脚本中第一行开头中写到,它指明了执行这个脚本文件的解释程序。
1. 如果脚本文件中没有#!这一行,那么它执行时会默认用当前Shell去解释这个脚本(即:$SHELL环境变量)。
2. 如果#!之后的解释程序是一个可执行文件,那么执行这个脚本时,它就会把文件名及其参数一起作为参数传给那个解释程序去执行。
3. 如果#!指定的解释程序没有可执行权限,则会报错“bad interpreter: Permission denied”。如果#!指定的解释程序不是一个可执行文件,那么指定的解释程序会被忽略,转而交给当前的SHELL去执行这个脚本。
4. 如果#!指定的解释程序不存在,那么会报错“bad interpreter: No such file or directory”。注意:#!之后的解释程序,需要写其绝对路径(如:#!/bin/bash),它是不会自动到$PATH中寻找解释器的。
5. 当然,如果你使用”bash test.sh”这样的命令来执行脚本,那么#!这一行将会被忽略掉,解释器当然是用命令行中显式指定的bash。

举例理解(windows):


例如下图,通常情况下我们用第一种方式运行perl,就是指定perl来运行代码文件;但是脚本里面如果添加了#!指定perl所在的路径,再给文件加上可执行权限之后,就可以直接运行,而不需要指定perl来运行,例如如2:

对于perl新手来说,理解起来比较难,建议使用第一种方法运行perl脚本就行,可以忽略这一行,甚至脚本中不写这一行也行;

attachments-2018-12-WQOZegci5c27002b9cc91.jpg

更多生物信息课程:

1. 文章越来越难发?是你没发现新思路,基因家族分析发2-4分文章简单快速,学习链接:基因家族分析实操课程基因家族文献思路解读

2. 转录组数据理解不深入?图表看不懂?点击链接学习深入解读数据结果文件,学习链接:转录组(有参)结果解读转录组(无参)结果解读

3. 转录组数据深入挖掘技能-WGCNA,提升你的文章档次,学习链接:WGCNA-加权基因共表达网络分析

4. 转录组数据怎么挖掘?学习链接:转录组标准分析后的数据挖掘转录组文献解读

5. 微生物16S/ITS/18S分析原理及结果解读OTU网络图绘制cytoscape与网络图绘制课程

6. 生物信息入门到精通必修基础课:linux系统使用perl入门到精通perl语言高级R语言画图

7. 医学相关数据挖掘课程,不用做实验也能发文章:TCGA-差异基因分析GEO芯片数据挖掘 GEO芯片数据不同平台标准化 、GSEA富集分析课程TCGA临床数据生存分析TCGA-转录因子分析TCGA-ceRNA调控网络分析

8.其他,二代测序转录组数据自主分析NCBI数据上传二代测序数据解读

  • 发表于 2018-12-29 13:00
  • 阅读 ( 8856 )
  • 分类:perl

0 条评论

请先 登录 后评论
omicsgene
omicsgene

生物信息

698 篇文章

作家榜 »

  1. omicsgene 698 文章
  2. 安生水 347 文章
  3. Daitoue 167 文章
  4. 生物女学霸 120 文章
  5. xun 82 文章
  6. 红橙子 78 文章
  7. rzx 74 文章
  8. CORNERSTONE 72 文章