Bash脚本命令处理程序替换长if链

时间:2018-06-21 16:15:02

标签: bash

假设我有一堆if语句,其格式为:

如果(设置了一些标志变量/参数),则   执行另一个命令或bash脚本

维护起来有点麻烦,所以我想知道是否还有其他方法可以做到这一点。尽管此guide是针对node.js的,但我想知道是否有可能在bash中实现类似的目的

2 个答案:

答案 0 :(得分:1)

您可以编写一个包装器函数来检查变量,然后执行传入的命令:

#!/bin/bash

run_if_set() {
    local var=$1
    shift
    (($# == 0)) && return   # nothing to run
    [[ $var ]] && "$@"      # execute only if var is set to a non-empty string
}

然后将if语句替换为:

run_if_set "$var" command ...

更具可读性
if [[ $var ]]; then
  command ...
fi

[[ $var ]] && command ...

答案 1 :(得分:1)

我想知道您是否正在寻找这样的东西:

// data.js
let Data = function(){}; 

Data.prototype.integers = [0,1,3,2,8,4,11,22,74,98,111,5];

Data.prototype.myFunction= function (text){
  return text
}
module.exports.Data  = Data;


// main.js
let Numbers = require ("./data.js");
console.log(Numbers.myFunction("some text"), Numbers.integers ); // myFunction is not a function