linux - 在多个 Shell 脚本中执行相同的命令

标签 linux shell file automation

我正在使用以下命令将命令输出发送到文件中:

logs/`basename $0`-`basename $1`.`date +%F--%R\`.log

而且由于相同的语法属于几个不同的 shell 脚本,我真的希望它只出现一次。我的第一个想法是将它放在另一个 shell 脚本中:

export LOGFILE=logs/`basename $0`-`basename $1`.`date +%F--%R`.log
# OR
export LOGFILE=logs/\`basename $0\`-\`basename $1\`.\`date +%F--%R\`.log

让每个文件调用这样的命令:

java CMD | tee $LOGFILE

但是这不起作用。有什么方法可以描述一个文件,以您在上面看到的方式创建一次,但能够在脚本中重复引用它?

最佳答案

一种解决方案是在 shell 脚本中定义一个函数...

但您几乎可以将其用于导出。如果您想继续这样做,关键是要转义 $ ,这样在您准备好之前它们不会被替换为它们的值。然后使用 eval 稍后重新计算它。

例如:

501 ~$ export foo='$bar'
502 ~$ echo $foo
$bar
503 ~$ export bar=moo
504 ~$ eval echo $foo
moo
505 ~$ export bar=hello
506 ~$ eval echo $foo
hello

关于linux - 在多个 Shell 脚本中执行相同的命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1095147/

相关文章:

node.js - 使用node.js执行shell程序并将node变量传递给shell命令

mysql - 为什么将二进制文本通过管道传输到屏幕通常会导致终端崩溃

c# - 仅在 asp.net 中显示所需文件

python - 在 gdb 中加载 python 支持

linux - 如何减慢过程的所有时间测量?

linux - shell 用户变量的差异

c++ - 使用stof引发异常-C++

php - 在 PHP 或 JS 中读取 PDF 文件,然后提取内容,最好是通过文本

linux - 从 bash 和 linux 调度创建实时 linux 线程

linux - 如何判断 SQLite 在 Linux 上是否正确安装?