我正在写一个 bash 脚本,想切换到另一个用户,cd 到用户 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/