微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

将短蟒蛇脚本嵌入到bash脚本中

我想把短的python脚本的文本嵌入一个bash脚本,用于说,我的.bash_profile。什么是最好的方式去做这样的事情?

我迄今为止的解决方案是使用-c选项调用python解释器,并告诉解释器执行从stdin读取的任何内容。从那里,我可以构建简单的工具,如下所示,允许我处理文本在我的交互式提示中使用:

function pyexec() {
    echo "$(/usr/bin/python -c 'import sys; exec sys.stdin.read()')"
}

function traildirs() {
    pyexec <<END
trail=int('${1:-3}')
import os
home = os.path.abspath(os.environ['HOME'])
cwd = os.environ['PWD']
if cwd.startswith(home):
    cwd = cwd.replace(home,'~',1)
parts = cwd.split('/')
joined = os.path.join(*parts[-trail:])
if len(parts) <= trail and not joined.startswith('~'):
    joined = '/'+joined
print joined
END
}

export PS1="\h [\$(traildirs 2)] % "

这个方法闻到对我有点滑稽,但我想知道这样做的替代方法可能是。

我的bash脚本技巧是相当初步的,所以我特别感兴趣听到如果我从bash解释器的角度做傻事。

python解释器接受 – 在命令行上作为stdin的同义词,因此您可以用以下命令替换对pyexec的调用
python - <<END

请参见命令行参考here

原文地址:https://www.jb51.cc/bash/389365.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐