Linux连续执行多命令失效:sudo su切换用户后cd命令不执行
问题解决:链式执行sudo切换用户后cd命令不生效
你遇到的问题核心是:sudo su - airflow会启动一个全新的airflow用户登录shell,而你用;或&&连接的cd命令是在原来的用户shell里执行的,自然不会作用到新启动的airflow shell中。
解决方法很简单,让su直接在新shell里执行cd命令,甚至可以直接进入交互shell保持在目标目录:
常用解决方案
用
su的-c参数指定要执行的命令链:sudo su - airflow -c "cd /opt/test_folder && bash"这条命令会让airflow用户先切换到目标目录,然后启动交互bash shell,你会直接处于
/opt/test_folder下。也可以用
sudo -u直接指定用户执行命令,效果一致:sudo -u airflow bash -c "cd /opt/test_folder && bash"如果只是需要执行某条具体命令(不需要交互shell),可以直接写命令链:
sudo su - airflow -c "cd /opt/test_folder && 你的具体命令"
内容的提问来源于stack exchange,提问作者Keyle T
相关产品推荐
相关产品推荐

