我需要扩展一个shell脚本(bash)。由于我更熟悉python,所以我想通过编写一些依赖于shell脚本中的变量的python代码来实现这一点。添加额外的python文件不是一个选项。
result=`python -c "import stuff; print('all $code in one very long line')"`
可读性不强。
我希望将python代码指定为多行字符串,然后执行它。
我正在尝试编写一个Python脚本,它从文件中读取多行字符串并执行一个bash-shell命令,每行都作为参数:
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import os
lines = [line.strip() for line in open('/tmp/i586rpm.txt')]
for rpm in lines:
try:
s = os.system("rpm -qip") % lines
except Exception:
print "
我有一个bash脚本,它运行一个主要用C和Python编写的小程序列表,因为这些程序本身并不是没有bug的,它们可能会崩溃或运行到无限循环中,所以在BASH脚本中,我在subshell中运行程序,这样它就不会破坏主shell,下面是它喜欢的内容:
#!/usr/bin/env bash
set -e
for py_p in "${py_program_list[@]}"; do
(python "$py_p") || echo "terminated!"
done
for c_p in "${c_program_list[@]
我想在bash中使用python shell (即执行$ python并在bash中按enter键),但我注意到缺少了一些可以提高我的工作效率的东西。
是否有任何已知的资源可以修复其中的任何(或所有)问题?
1)无自动缩进
当我在写完后按回车键时
>>> for i in [1, 2]:
bash不会自动缩进4个空格
2)奇怪的命令行历史记录
当我执行多行命令时:
>>> for i in [1, 2]:
... pass
...
我点击向上箭头来获取我的历史记录,而不是获取我所获取的整个多行命令
... pass
3)无语法着色
4)无自动
我有以下bash脚本:
export MYCONFIG_CONFIG=TEST
/home/bmwant/projects/test/venv/bin/python3 /home/bmwant/projects/test/script.py
我的python脚本需要我设置的环境变量,但是将这个脚本运行为
bash run_python.sh
显示一个错误
/home/bmwant/projects/test/venv/bin/python3: can't open file 'home/bmwant/projects/tes': [Errno 2] No such fi
我必须编写一个Bash脚本,它检查另一个Bash脚本是否包含某个命令行。由于Bash允许将命令行拆分为多行,所以在实际模式匹配之前,我的脚本必须能够合并相应的行。
如何在Bash脚本中将所有多行解析为单行命令?
示例
我想检查某个脚本是否包含ls命令,如果它包含ls命令,我想知道哪些参数被传递给ls命令。要回答这个问题,我可以用sed。但因此,我必须首先合并所有多行命令。
输入:
# My comment \
ls \
-a \
-l
输出:
# My comment \
ls -a -l
无效输出示例:
# My comment ls -a -l
我有一个带有mysql服务器的debian机器。在mysql上,我有一个表,其中包含带有datetime字段的许多行。当机器的日期和时间与任何mysql记录中指定的日期和时间匹配时,如何执行php脚本?( a) Mysql触发器?在后台运行并每n秒钟检查一次时间的Deamon?( c) Cron?
让我知道!
我有一个bash脚本,如下所示: name=""
while read i; do
if [ -z "$name" ]; then
name="$i"
else
echo "$i"
fi
done < <(python tmp.py)
echo "$name" 其中tmp.py类似于: import time
for i in range(5):
print(i)
time.sleep(.5) 但问题是,bash脚本会等待pyt