Mar*_*tin 6 permissions executable shell-script
众所周知,如果要在 shell 中执行脚本,则该脚本需要具有执行权限:
$ ls -l
total 4
-rw-r--r-- 1 user user 19 Mar 14 01:08 hw
$ ./hw
bash: ./hw: Permission denied
$ /home/user/hw
bash: /home/user/hw: Permission denied
$
Run Code Online (Sandbox Code Playgroud)
然而,也可以与执行该脚本bash <scriptname>
,sh <scriptname>
等:
$ bash hw
Hello, World!
$
Run Code Online (Sandbox Code Playgroud)
这意味着基本上可以执行一个脚本文件,即使它只有读权限。这可能是一个愚蠢的问题,但是赋予脚本文件执行权限有什么意义呢?仅仅是因为为了让程序运行它需要具有执行权限,但它实际上并没有增加安全性或任何其他好处吗?
是的,您可以使用bash /path/to/script
,但脚本可以有不同的解释器。其可能的脚本被写入工作与ksh
,zsh
或者甚至awk
或expect
。因此,您必须知道使用什么解释器来调用脚本。通过改为使用 shebang 行(#!/bin/bash
位于顶部)可执行脚本,用户不再需要知道要使用什么解释器。它还允许您将脚本放入$PATH
并像普通程序一样调用它。
归档时间: |
|
查看次数: |
1676 次 |
最近记录: |