如何在bash中执行脚本?

Jar*_*aro 7 bash

我想知道只有在这个脚本存在的情况下,是否有更简单的方法在bash中执行脚本.我想要的相当于:

if [ -x $name ]
then
  $name
fi
Run Code Online (Sandbox Code Playgroud)

要么

[ -x $name ] && $name
Run Code Online (Sandbox Code Playgroud)

我正在寻找的是类似的东西

exec_if_exist $name
Run Code Online (Sandbox Code Playgroud)

这消除了重复的脚本名称.

有没有办法在bash中简化这个?我不想要一个函数或"推测"执行,这会给命令找不到错误.

最好

小智 7

您可以使用type命令对其进行一些简化。在进行测试时,它需要文件的完整或相对路径。有了type它,将搜索PATH。

type $name && $name
Run Code Online (Sandbox Code Playgroud)

它也很不错,因为它使STDOUT成功,而STDERR失败,从而使您可以完全控制输出

# mute success
type >/dev/null
# mute fail
type 2>/dev/null
# mute both
type &>/dev/null
Run Code Online (Sandbox Code Playgroud)