Ⅰ 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"