Ubuntu认为bash脚本是perl

时间:2016-09-15 08:08:26

标签: bash perl ubuntu

将以下代码保存到文件中,Ubuntu 14.04正确地意识到它是bash:

#!/usr/bin/env bash

awk '{print $1 $2}' my_file

然而,通过简单地添加关于输出格式的awk的指令:

#!/usr/bin/env bash

awk 'BEGIN {ORS=" "} {print $1 $2}' my_file

Ubuntu现在认为这是Perl,可以在文件属性中看到,以及gedit如何格式化代码。到底是怎么回事? (我真正关心的是比这个玩具示例更长的bash代码。)

修改 用扩展名.bash保存它是愚弄Nautilus ......

1 个答案:

答案 0 :(得分:2)

您尝试使用静态shebang吗?

#!/bin/bash

shebang的env版本更灵活,但它可能会阻碍某些程序(如gedit)......

但是,它不是O.S.问题:如果您尝试此命令:

$ file myscript
myscript: a /usr/bin/env bash script text executable

而且vim正确地为语法着色......

所以这个问题可能与gedit ...: - (

<强>更新: 作为与OP聊天的结果,问题在于脚本的名称(script.bash) 将其更改为script.sh可以解决问题。