用python2将上面的shell实现
时间: 2024-04-14 15:26:21 浏览: 118
以下是使用 Python 2 实现上述 Shell 脚本的示例:
```python
import os
import subprocess
files_to_backup = [
"/etc/pam.d/su",
"/etc/pam.d/password-auth-ac",
"/etc/pam.d/system-auth",
"/etc/login.defs",
"/etc/ssh/sshd_config",
"/etc/vsftpd/vsftpd.conf",
"/etc/profile",
"/etc/motd"
]
for file_path in files_to_backup:
if os.path.exists(file_path):
backup_file_path = file_path + ".bak"
subprocess.call(["cp", file_path, backup_file_path])
else:
print "File %s does not exist" % file_path
```
在 Python 2 中,`print` 是一个语句而不是函数。因此,我们使用`print`语句而不是`print()`函数来打印消息。
请确保你有足够的权限来执行备份操作,并且文件路径正确。运行代码后,将执行文件备份操作或打印相应的消息。
相关问题
shell调用python变量
在Shell脚本中调用Python变量,可以使用命令替换或通过环境变量来实现。下面是两种方法的示例:
1. 使用命令替换:
```shell
#!/bin/bash
# 在Shell脚本中定义一个变量
shell_var="Hello, Shell!"
# 使用命令替换调用Python脚本并传递Shell变量
python_var=$(python -c "print('$shell_var')")
# 打印Python变量的值
echo "Python variable: $python_var"
```
在上面的示例中,通过将Shell变量传递给Python脚本并使用`print()`函数返回值,然后将返回值赋值给Shell变量`python_var`,最后打印Python变量的值。
2. 使用环境变量:
```shell
#!/bin/bash
# 在Shell脚本中定义一个变量
export shell_var="Hello, Shell!"
# 在Python脚本中读取环境变量并打印其值
python -c "import os; print(os.environ['shell_var'])"
```
在上述示例中,将Shell变量`shell_var`导出为环境变量,然后在Python脚本中使用`os.environ`字典访问该环境变量的值并进行打印。
这些示例演示了如何在Shell脚本中调用Python变量。你可以根据自己的需求选择适合的方法。
$(shell python3 xxxdx) 返回两行 但是每行中间还有空格,这种情况怎么实现
如果 `$(shell python3 xxxdx)` 返回的两行字符串中包含空格,可以使用 `$(wordlist)` 函数将其分别获取。具体方法如下:
```
output := $(shell python3 xxxdx)
line1 := $(wordlist 1,2,$(output))
line2 := $(wordlist 3,4,$(output))
```
其中,`$(wordlist)` 函数用于获取指定位置的单词列表(以空格为分隔符)。在上面的例子中,`$(wordlist 1,2,$(output))` 获取输出字符串的第一个和第二个单词的列表,即第一行;`$(wordlist 3,4,$(output))` 获取输出字符串的第三个和第四个单词的列表,即第二行。注意,由于空格的存在,需要指定单词列表的起始位置和结束位置,不能直接使用 `$(word)` 函数。
阅读全文