bash exec的正确语法

大卫542

我正在尝试执行以下操作:

if ps aux | grep "[t]ransporter_pulldown.py" > /dev/null
then
    echo "Script is already running. Skipping"
else
    exec "sudo STAGE=production $DIR/transporter_pulldown.py" # this line errors
fi

$ sudo STAGE=production $DIR/transporter_pulldown.py 在命令行上工作,但在bash脚本中,它给了我:

./transporter_pulldown.sh: line 9: 
exec: /Users/david/Desktop/Avails/scripts/STAGE=production 
/Users/david/Desktop/Avails/scripts/transporter_pulldown.py: 
cannot execute: No such file or directory

这里正确的语法是什么?

丹·S

sudo不是命令解释器,因此它试图将第一个参数作为命令执行。

而是尝试以下方法:

exec sudo bash -c "STAGE=production $DIR/transporter_pulldown.py"

这将创建使用新bash过程来解释变量并执行python脚本的过程。还要注意,这$DIR将由您键入的shell而不是正在执行的shell解释。要强制在新bash流程中解释它,请使用单引号。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Bash脚本-exec语法

来自分类Dev

bash脚本行的正确语法

来自分类Dev

bash语法错误“ exec 11 <<&-”

来自分类Dev

linux + .bash_profile +正确的PATH语法

来自分类Dev

bash多行Heredoc(带有Sed)的正确语法是什么?

来自分类Dev

在bash中匹配变量的正确语法是什么?

来自分类Dev

如何为我的bash找出正确的String语法?

来自分类Dev

正确的语法以避免bash“歧义重定向”消息

来自分类Dev

bash多行Heredoc(带有Sed)的正确语法是什么?

来自分类Dev

正确传递bash语法(管道运算符)以正常运行

来自分类Dev

通过 BASH while 循环构建语法正确的 JSON 文件

来自分类Dev

正确的bash sed命令语法以获取正确的子字符串

来自分类Dev

了解bash脚本语法

来自分类Dev

Bash语法错误

来自分类Dev

Bash语法错误

来自分类Dev

For循环语法bash脚本

来自分类Dev

bash别名定义的语法

来自分类Dev

Bash变量语法问题

来自分类Dev

Bash脚本,OR语句的语法

来自分类Dev

在bash中循环-语法

来自分类Dev

Bash for循环语法

来自分类Dev

来自bash的exec $ SHELL

来自分类Dev

来自bash的exec $ SHELL

来自分类Dev

exec命令bin bash

来自分类Dev

当bash正确执行代码时,为什么源代码会给出语法错误?

来自分类Dev

当bash正确执行代码时,为什么源代码会给出语法错误?

来自分类Dev

在bash shell脚本/ makefile中的正则表达式中转义$的正确语法?

来自分类Dev

在终端(bash)中粘贴正确的if语句(以'\ t'缩进)给出语法错误

来自分类Dev

在bash中,为什么SHELL = / bin / sh lesspipe在语法上正确?