Linux 脚本 sh 和 . 的区别

Linux 脚本 sh 和 . 的区别,第1张

区别只有一点:

sh表示脚本默认使用sh脚本解释器。

未指定脚本解释器默认为 ./。

具体解释:

使用“./”执行脚本,对应的xxx.sh脚本必须要有执行权限

使用“sh” 执行脚本,对应的xxx.sh没有执行权限,亦可执行。

当脚本开头使用#!设置使用的shell类型时,使用“./”执行脚本时,则使用“#!”标志的shell执行脚本;若无使用“#!”标记,则使用系统设置的默认shell执行脚本。

扩展资料:

举例:

登录用户root查看权限:

-rwx—— 1 root root

执行这个shell脚本 :

./test 成功。

sh test 成功。

去掉执行权限x:

-rw——- 1 root root 17 2011-09-22 23:33 test

执行这个shell脚本。

./test 失败 (-bash: ./test: Permission denied)。

sh test 成功。

sh脚本里可以调用sed,awk,grep,perl之类的命令来使用正则表达式。

如果是bash 3.0脚本,支持进程内的正则表达式,使用下面的语法:

[[ string =~ regex ]]

if [[ abcfoobarbletch =~ 'foo(bar)bl(.*)' ]]

 then

         echo The regex matches!

         echo $BASH_REMATCH      -- outputs: foobarbletch

         echo ${BASH_REMATCH[1]} -- outputs: bar

         echo ${BASH_REMATCH[2]} -- outputs: etch

 fi

使用这个语法的性能要比生成一个新的进程来运行grep命令优越,因为正则表达式匹配在bash进程内完成。如果正则表达式或者字符串包括空格或者shell 关键字,(诸如'*'或者'?'),就需要用引号包裹。


欢迎分享,转载请注明来源:夏雨云

原文地址:https://www.xiayuyun.com/zonghe/27926.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-02-18
下一篇2023-02-18

发表评论

登录后才能评论

评论列表(0条)

    保存