導航:首頁 > 程序命令 > 智能執行命令代碼

智能執行命令代碼

發布時間:2024-01-22 11:36:45

Ⅰ 如何利用shell腳本中的eval命令來構造"智能"命令

今天主要介紹一個shell腳本中比較少見的命令--eval

功能說明 :重新運算求出參數的內容。

語 法 :eval [參數]

補充說明 :eval可讀取一連串的參數,然後再依參數本身的特性來執行。

參 數 :參數不限數目,彼此之間用分號分開。

eval命令將會首先掃描命令行進行所有的替換,然後再執行命令。該命令使用於那些一次掃描無法實現其功能的變數。該命令對變數進行兩次掃描。這些需要進行兩次掃描的變數有時候被稱為復雜變數。eval也可以用於回顯簡單變數,不一定是復雜變數。

eval的作用是再次執行命令行處理,也就是說,對一個命令行,執行兩次命令行處理。這個命令要用好,就要費一定的功夫。下面用幾個例子幫助大家理解下。

1、eval一個命令

eval echo相當於echo

2、兩次掃描

該命令適用於依次掃描無法完成其功能的變數。

第一步:對eval後面的命令進行掃描,執行變數替換,普通命令保留

第二步:執行變數替換後的命令串

3、獲得最後一個參數

4、用eval技巧實現shell的控制結構for

用eval技巧實現shell的控制結構for

輸出結果:

注意:bash里有兩個很特殊的變數,它們保存了參數列表。

這里我使用了函數遞歸以及eval實現了for結構。

當執行eval $@時,它經歷了步驟如下:

第1步,分割成eval $@

第6步,擴展$@為hostname

第11步,找到內置命令eval

重復一次命令行處理,第11步,找到hostname命令,執行。

eval是對Bash Shell命令行處理規則的靈活應用,進而構造"智能"命令實現復雜的功能。上面提及的命令是eval其中一個很普通的應用,它重復了1次命令行參數傳遞過程,純粹地執行命令的命令。其實它是bash的難點,是高級bash程序員的必修技能。

Ⅱ 如何在 Linux 啟動時自動執行命令或腳本

Linux繼承了Unix以網路為核心的設計思想,是一個性能穩定的多用戶網路操作系統。有用戶想要在Linux啟動時候自動執行命令腳本,應該怎麼設置呢?這篇文章主要介紹了詳解如何在 Linux 啟動時自動執行命令或腳本,主要有兩種方式,具有一定的參考價值,感興趣的小夥伴們可以參考一下。

方法步驟

在啟動時執行 Linux 腳本

有兩種傳統的方法可以實現在啟動時執行命令或腳本:

方法 #1 - 使用 cron 任務

除了常用格式(分 / 時 / 日 / 月 / 周)外,cron 調度器還支持 @reboot 指令。這個指令後面的參數是腳本(啟動時要執行的那個腳本)的絕對路徑。

然而,這種方法需要注意兩點:

a) cron 守護進程必須處於運行狀態(通常情況下都會運行),同時

b) 腳本或 crontab 文件必須包含需要的環境變數(如果有的話,參考 StackOverflow 獲取更多詳細內容)。

方法 #2 - 使用 /etc/rc.d/rc.local

這個方法對於 systemd-based 發行版 Linux 同樣有效。不過,使用這個方法,需要授予 /etc/rc.d/rc.local 文件執行許可權:

# chmod +x /etc/rc.d/rc.local

然後在這個文件底部添加腳本。

下圖說明如何分別使用 cron 任務和 rc.local 運行兩個示例腳本(/home/gacanepa/script1.sh 和 /home/gacanepa/script2.sh)。

script1.sh:

#!/bin/bash

DATE=$(date +'%F %H:%M:%S')

DIR=/home/gacanepa

echo "Current date and time: $DATE" > $DIR/file1.txt

script2.sh:

#!/bin/bash

SITE="Tecmint.com"

DIR=/home/gacanepa

echo "$SITE rocks... add us to your bookmarks." > $DIR/file2.txt

*啟動時執行 Linux 腳本 *

記住,一定要提前給兩個示例腳本授予執行許可權:

$ chmod +x /home/gacanepa/script1.sh

$ chmod +x /home/gacanepa/script2.sh

在登錄或注銷時執行 Linux 腳本

要在登錄或注銷時執行腳本,分別需要使用 ~.bash_profile 和 ~.bash_logout 文件。多數情況下,後者需要手動創建。在每個文件的底部,添加調用腳本代碼,如前面例中所示,就可以實現這個功能。

補充:Linux基本命令

1.ls命令:

格式::ls [選項] [目錄或文件]

功能:對於目錄,列出該目錄下的所有子目錄與文件;對於文件,列出文件名以及其他信息。

常用選項:

-a :列出目錄下的所有文件,包括以 . 開頭的隱含文件。

-d :將目錄像文件一樣顯示,而不是顯示其他文件。

-i :輸出文件的i節點的索引信息。

-k :以k位元組的形式表示文件的大小。

-l :列出文件的詳細信息。

-n :用數字的UID,GID代替名稱。

-F : 在每個文件名後面附上一個字元以說明該文件的類型,“*”表示可執行的普通文 件;“/”表示目錄;“@”表示符號鏈接;“l”表示FIFOS;“=”表示套接字。

2.cd命令

格式:cd [目錄名稱]

常用選項:

cd .. 返回上一級目錄。

cd ../.. 將當前目錄向上移動兩級。

cd - 返回最近訪問目錄。

3.pwd命令

格式: pwd

功能:顯示出當前工作目錄的絕對路徑。

相關閱讀:Linux主要特性

完全兼容POSIX1.0標准

這使得可以在Linux下通過相應的模擬器運行常見的DOS、Windows的程序。這為用戶從Windows轉到Linux奠定了基礎。許多用戶在考慮使用Linux時,就想到以前在Windows下常見的程序是否能正常運行,這一點就消除了他們的疑慮。

多用戶、多任務

Linux支持多用戶,各個用戶對於自己的文件設備有自己特殊的權利,保證了各用戶之間互不影響。多任務則是現在電腦最主要的一個特點,Linux可以使多個程序同時並獨立地運行。

良好的界面

Linux同時具有字元界面和圖形界面。在字元界面用戶可以通過鍵盤輸入相應的指令來進行操作。它同時也提供了類似Windows圖形界面的X-Window系統,用戶可以使用滑鼠對其進行操作。在X-Window環境中就和在Windows中相似,可以說是一個Linux版的Windows。

支持多種平台

android手機指令對應的信息用代碼執行顯示,如輸入:*#06#可以顯示IMEI串碼,不知道程序要調用什麼代碼

程序要調用使用代碼為*#*#4636#*#* 可以進入工程模式,可以開手機網關,也可以查手機電池信息 是否原裝。安卓手機系統代碼命令有以下方法:
1、*#*#4636#*#* 顯示手機信息、電池信息、電池記錄、使用統計數據、WIFI信息
2*#*#7780#*#* 重設為原廠設定,不會刪除預設程序及SD卡檔案
3、*2667*3855# 重設為原廠設定,會刪除SD卡所有檔案
4、*#*#34971539#*#* 顯示相機相機韌體版本,或更新相機韌體
5、*#*#7594#*#* 當長按關機按鈕時,會出現一個切換手機模式的窗口,可以用這個代碼,直接變成關機按鈕
6、*#*#273283*255*663282*#*#* 開啟一個能讓你備份媒體文件的地方,例如相片、聲音等
7、*#*#197328640#*#* 啟動服務模式,可以測試手機部分設置及更改設定WLAN、GPS及藍牙測試代碼
8、*#*#232338#*#* 顯示WIFI MAC地址
9、*#*#1472365#*#* GPS測試
10、*#*#1575#*#* 其他GPS測試
11、*#*#232331#*# 藍牙測試
12、*#*#232337#*# 顯示藍牙裝置地址
13、*#*#8255#*#* 啟動GTALK服務監視器
各項硬體測試
1、*#*#0283#*#* Packet Loopback
2、*#*#0*#*#* LCD測試
3、*#*#0842#*#* 裝置測試,如震動、亮度
4、*#*#2663#*#* 觸控屏幕版本
5、*#*#2664#*#* 觸控屏幕測試
6、*#*#0588#*#* 接近感應器測試
7、*#*#3264#*#* 內存版本
8、*#06# 顯示手機原廠出廠串號(移動通信國際識別碼)

閱讀全文

與智能執行命令代碼相關的資料

熱點內容
怎麼做解壓神器泡泡版 瀏覽:964
自己動手做一個c編譯器 瀏覽:927
手機如何鏈接谷歌伺服器地址 瀏覽:135
廢掉一個程序員的武功 瀏覽:247
java樹形演算法 瀏覽:639
通達信加鎖指標源碼怎麼看 瀏覽:752
將同名文件移動到部分同名文件夾 瀏覽:401
擺盪指標加壓力線源碼 瀏覽:913
新一代單片機特徵 瀏覽:768
王者的伺服器什麼時候才修好 瀏覽:279
cad歷史命令 瀏覽:39
php博客源代碼 瀏覽:24
cng壓縮機功率 瀏覽:459
pdf批量列印怎麼設置 瀏覽:78
javamap底層 瀏覽:267
賣華為雲伺服器 瀏覽:111
中穎單片機燒錄器 瀏覽:848
pdf轉換成圖片免費軟體 瀏覽:469
編程語言怎麼做出來的 瀏覽:619
文件夾英文名排序 瀏覽:56