我正在尝试在 python 脚本中使用 linux 别名来获取所需的信息 为此,我需要在 python3 脚本中运行 linux 别名。
例如,我正在运行“ll”别名,如第一个屏幕截图所示。
print('{:/^100}'.format(f' pd_env detect '))
get_pd_env_cmd = subprocess.run('ll', shell=True,
capture_output=True, text=True,
executable='/bin/csh'
)
print(get_pd_env_cmd.stdout)
print('-'*100)
print(get_pd_env_cmd.stderr)
exit()
但结果我只收到第二个屏幕截图所示的错误。
////////////////////////////////////////// pd_env 检测 ///// ///////////////////////////////////////
ll:未找到命令。
我的linux shell是csh。 我尝试使用交互式 shell 运行它“csh -ic command”。 据我了解,问题是 python 脚本无法识别 linux 别名。
测试你的代码,我发现在我的环境中,shell 别名在 python 中不可用,我得到
/usr/bin/alias: line 2: alias: ll: not found
。
我的想法是在返回的 python 子进程中运行
alias ll
alias ll='ls -l --color=auto'
通过字符串操作轻松过滤
alias_response.split('=')[1].split("'")[0]
并在以下子进程调用中使用该字符串作为命令就在我的脑海里......希望它有帮助