将以下代码保存到文件中,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 ......
答案 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
可以解决问题。