Linux, BASH 使用特殊字符启动命令

Linux, BASH launch command with special char

我必须实现一个部署脚本,该脚本通过来自特定用户的特殊字符启动命令。

我必须启动的命令是:

cd /path
. ./setantenv.sh

我正在尝试使用以下语法启动命令:

su - USER -s /bin/bash -c 'cd /PATH/ && . ./setantenv.sh'
su - USER -s /bin/bash -c 'cd /PATH/ && ant clean all'

但是我遇到了 . ./setantenv.sh

的问题

为了配置后续 ant 命令的环境,您必须在第二次调用中包含“. ./setantenv.sh”。这两个调用都会导致不共享其特定环境的独立 bash 进程。

试试这个:

su - USER -s /bin/bash -c 'cd /PATH/ && . ./setantenv.sh && ant clean all'