我正在编写bash脚本,并希望切换到另一个用户,cd到users bash_profile中MYDIR指定的目录中,并列出内容。
目前我有:

read username
su - app${username} -c ls $MYDIR

输出什么都不是,我的第一个猜测是从用户配置文件中读取$MYDIR是一个问题,因为手动操作很好,例如。
#su - appadmin
#ls $MYDIR

最佳答案

您需要引用要执行的命令。
目前shell正在用调用方环境中的值替换$MYDIR。同时-c只传递要执行的下一个参数,即ls而不传递$MYDIR-您需要在整个远程命令周围加引号:

su - app${username} -c 'ls $MYDIR'

关于linux - 切换用户和输出变量内容,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/1698145/

10-10 17:53