Ⅰ linux shell自动交互问题,求大神解
那就不要用判断, 直接在顶部写入过滤条件, 然后就执行下面的了。上面是C程序, 不知道楼主到底要干嘛的
Ⅱ linux中的shell是什么有什么作用
Shell是人机交互用的一个程序。
用户有shell了就可以登陆系统并且可以用命令和系统交互,肯定不安全。
没有shell就无法用命令去和系统对话,自然安全多了。
最“土”的办法就是用用户名和密码登陆一下,能进去就是有用户shell,进不去就是没有用户shell。
Ⅲ Linux里,什么是shell环境
shell是用户与作业系统之间的交互层,用户修改其环境,设置或取消shell的环境变量,迎合用户的需要和爱好。shell本身就是一个电脑程序,用C语言编写,为协助用户与作业系统之间通讯而设计,管理用户与核心之间对话,
把作业系统指令换成机器代码,其实PC用户常用的DOS,本身就是一个shell。
shell的主要任务是:提示用户打入指令,读指令,转换指令为核心所能理解的语言。此外,shell可以看作为指令解释程序,提供一些工具,亦可以利用shell的编写工具,构造电脑程序。
Ⅳ 如何使用python3.4与Linux shell交互
下面来看下在python3.4中,如何与Linux交互的。
在python里面可以操作linux的命令有
1,os.system("cmd")
2,os.open("cmd")
3,spawn*
4,subprocess
在最新的python里,推荐使用subprocess来与shell通信,它会生成一个子进程来连接输出,输入,错误等shell下3中标准的输入输出流,并返回执行结果的状态码0和1,来判断本次执行命令的成功与失败。
下面来看一个小例子,首先,确保你的linux环境支持python3.4,如果不支持,你可以参考散仙的上篇文章来安装python3.4
首先,在linux,执行python命令找到最新的python3.4的路径,然后再py文件里声明头部路径,如果不知道python的具体安装路径,可以使用which python来查找路径
[root@master ~]# py
pydoc pydoc3.4 python2 python3 python3.4-config python3.4m-config pyvenv
pydoc3 python python2.6 python3.4 python3.4m python3-config pyvenv-3.4
[root@master ~]# which python3.4
/usr/local/python3.4/bin/python3.4
[root@master ~]#
写完脚本之后,先给脚本赋值权限,再执行:
[root@master rtt]# chmod +x b.py
[root@master rtt]# cat b.py
#!/usr/local/python3.4/bin/python3.4
import subprocess as t
v=t.call("ls")
print ("返回值: ",v)
[root@master rtt]# b.py
a.py b.py b.txt
返回值: 0
[root@master rtt]#
看下面的例子,注意python的shell执行,返回的是一个字符串,如果我们想逐行解析,需要使用如下方法:
[root@master rtt]# cat b.txt
id name
1 a
2 战三
3 b
[root@master rtt]# cat a.py
#!/usr/local/python3.4/bin/python3.4
import os
import subprocess as t
#var=t.getoutput("df -h")
#v=t.call("ls")
#var=t.getoutput("cat b.txt | grep a ")
var=t.getoutput("df -h | cat -n ")
for line in var.split("\n"):
print("这一行:" +line)
#print(var)
[root@master rtt]# a.py
这一行: 1 Filesystem Size Used Avail Use% Mounted on
这一行: 2 /dev/sda2 9.7G 2.9G 6.3G 32% /
这一行: 3 tmpfs 495M 0 495M 0% /dev/shm
这一行: 4 /dev/sda1 194M 28M 157M 15% /boot
这一行: 5 /dev/sda3 9.9G 948M 8.5G 10% /home
[root@master rtt]#
最后看下python的两种,生成行号的方式:
tt="你好\n哈喽"
for i,it in enumerate(tt.split("\n")):
print(i,it)
for line in range(len(tt.split("\n"))):
print(line," ",tt.split("\n")[line])
输出结果如下:
0 你好
1 哈喽
0 你好
1 哈喽
Ⅳ linux桌面新建启动器,如何新开一个窗口执行shell交互脚本
创建一个Terminal 终端来弹出一个窗口,
提示输入运行这个脚本:
urxvt -e sh file.sh
xterm -e sh file.sh
Ⅵ 在Linux shell脚本中,安装过程中如何实现自动选择安装选项
在Linux shell脚本中,安装过程中如何实现自动选择安装选项?
Linux中shell脚本运行时经常需要进行交互,比如安装软件的过程中对license声明的确认,需要输入yes,回车之类的确认信息。这个在自动化安装的时候就会是个问题。
通常对于这个问题比较灵活的解决方法就是TCL的Expect。但Expect还需要另外安装,平台通用性不高,比较麻烦。
另外一些简单的方法倒也是有,不过可用性不高,特别是对要求多次交互就吃力了。但怎么说其还是能解决大多数的问题,因为复杂的情况还是比较少的。比 如要一个调用一个安装脚本 : installWAS.sh, 这个脚本要求输入回车,则可以:echo | installWAS.sh;如果要求输入yes|no,加回车,则可以echo yes|installWAS.sh. 这下自动化安装就有希望了。
再有一下的代码也可以带来一些思路:
[0 No.2015 huan@huan ~/tmp]$ cat foo read -s -n1 -p "Press any key to continue ... " echo "Your inputs: $REPLY"
[0 No.2016 huan@huan ~/tmp]$ ./foo < /dev/null Your inputs:
[0 No.2017 huan@huan ~/tmp]$
Ⅶ Linux如何在交互式shell脚本中创建对话框
交互式shell没有图形化界面何来对话框?
无非只是
对话模式
echo
"请输入你的名字:"read
nameecho
"你的名字是
$name"