微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

简化BASH脚本devise

我需要使用相关的任意参数在脚本中执行任意次数的命令。

我已经决定脚本会从参数文件( parameter.txt )中提取线索,其格式如下:

label param1 param2

对于parameter.txt每一行,我将使用指定的参数调用该命令。

到目前为止,我的修补正在沿着下面的方向前进,但看起来很乱:

bash,找不到命令

脚本不能改变proj结构

连接string文字

如何获得在bash脚本中执行的命令的进程ID?

Bash输出stream写入文件

while read line; do echo $line | sed -r 's/[^ ]+ ([^ ]+).+/1/' && echo $line | sed -r 's/[^ ]+ [^ ]+ ([^ ]+)/1/' done < parameter.txt

我的命令是这样的forms:

mycmd -a param1 -b param2 > label

我可以得到一些build议,我可以简化这个?

我正在做一个小型embedded式系统,它的'helper'命令是短缺的(例如xargs不可用,像awk这样的东西是忙碌的busyBox实现),我正在使用版本2(2.04g我认为)的BASH。

使用socat连接到套接字,发送命令,并读取一行

Linux bash脚本来提取IP地址

从shell脚本捕获值,并在不使用subprocess的情况下在Python中使用

如何在执行shell脚本时closuresecho

Shell脚本,使用awk进行对angular单词search

while read label param1 param2; do mycmd -a "$param1" -b "$param2" > "$label" done < parameter.txt

我会建议一个函数,只要没有任何嵌入的空间。

function x() { mycmd -a $2 -b $3 >$1 } while read line; do x $line ; done <parameter.txt

尝试这个:

while read line ; do set -- $line dest="$1" shift mycmd "$@" > "$dest" done < parameter.txt

应该管用。 如果文件中的参数有空格,则必须正确引用它们。

我建议将-a , -b添加文件parameter.txt因为在运行中生成它们可能是脆弱的。

如果你不喜欢这个解决方案,那么我建议从这个包含实际命令的脚本创建一个新的脚本。 这样,您可以轻松调试任何问题。

当脚本看起来好的时候,你可以用source ./generated.sh (是的,你必须指定路径)来源。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐