當前位置:首頁 » 編程軟體 » shell腳本命令行

shell腳本命令行

發布時間: 2022-11-25 19:01:48

㈠ Shell腳本

因為-c的意思是command,所以bash -c後面應該跟一個command。
shell運行腳本的兩種方法:
1、bash xx.sh
2、bash -c "cmd string"

使用bash -c需要注意兩點:
1、bash -c "cmd string"接的是shell命令字元串,用雙引號括起來
2、bash -c "/path/to/file"接的是文件絕對路徑,用雙引號括起來,並且文件需要可執行許可權

參考鏈接:
1.1、 linux shell -c,【bash】關於shell中 bash -c 執行命令或者可執行文件
1.2、 【bash】關於shell中 bash -c 執行命令或者可執行文件

示例:/usr/libexec/PlistBuddy -c "cmd string"

參考鏈接: XCode添加自定義Run Script Phase

由於PlistBuddy並不在Mac默認的Path里,所以我們得通過絕對路徑來引用這個工具:

參考鏈接: PlistBuddy簡單使用

㈡ shell腳本是什麼

當執行命令或程序語句是通過程序文件而不是命令行,那這個程序被稱為Shell腳本。如果Shell腳本內置很多命令、語句及循環控制,然後一次性執行完畢,這種通過文件執行腳本的方式稱為非交互方式。用戶可以在Shell腳本中輸入一系列命令及命令語句組合。這些命令、變數和流程式控制制語句等有機地結合在一起,就形成一個功能強大的Shell腳本。

㈢ Shell基本腳本命令使用教程

1、本地變數:用戶私有變數,只有本用戶可以訪問,保存在家目錄的 .bash_profile、.bashrc文件中
2、全局變數:所有用戶都可以使用,保存在 /etc/profile 文件中
3、用戶自定義變數:用戶自定義,比如腳本中的變數
定義變數格式: 變數名=值 (=兩邊不能有空格)
字元串用單引號或者雙引號引起來

shell支持正則表達式的常見命令:grep、sed、awk。

sed 是一個行(流)編輯器,非互動式的對文件內容進行增刪改查操作

awk 能夠集過濾、提取、運算為一體,它的工作方式是讀取數據,將每一行數據視為一條記錄,每條記錄以欄位分隔符分成若干欄位,然後輸出各個欄位的值。平行命令還有 gawk、pgawk、dgawk。

㈣ shell腳本如何傳遞給子腳本命令行參數

shell腳本如何傳遞給子腳本命令行參數

shell腳本可以使用getops來分析命令行參數,現在的一個使用場景是:

例如:
父腳本:

父腳本處理一個參數-t,如果-t的值是sub,那麼調用sub.sh子腳本,然後把剩下的參數連同重寫的-t參數傳遞給子腳本sub.sh。

子腳本:

子腳本的參數處理就沒啥特殊的 了,和普通的腳本處理命令行參數一樣。

運行例子:

限制:

㈤ shell腳本中的 exec 命令

  exec執行命令時,不會啟用新的shell進程。
  source和 .也不會啟用新的shell進程,在當前shell中執行,設定的局部變數在執行完命令後仍然有效。
  bash或sh執行時,會另起一個子shell進程,其繼承父shell進程的環境變數,其子shell進程的變數執行完後不影響父shell進程。
  exec是用被執行的命令行替換掉當前的shell進程,且exec命令後的其他命令將不再執行。
  例如在當前shell中執行 exec ls 表示執行ls這條命令來替換當前的shell ,即為執行完後會退出當前shell。
  為了避免父shell被退出,一般將exec命令放到一個子shell腳本中,在父sehll中調用這個子shell腳本,調用處可以用bash xx.sh(xx.sh為存放exec命令的腳本),這樣會為xx.sh建立一個子shell去執行,當執行exec後該子shell進程就被替換成相應的exec的命令。

  其中有一個例外:當exec命令對文件描述符操作的時候,就不會替換shell,而是操作完成後還會繼續執行後面的命令!
文件描述符
shell中描述符一共有12個
0 代表標准輸入
1 代表標准輸出
2 錯誤輸出
其他 3-9 都是空白描述符

其含義是: 復制標准輸出到3 ,錯誤輸出到 4 ,把 3 4 保存在bash.log 這個文件中。

其含義是:將bash.sh腳本執行的標准輸出和錯誤輸出追加重定向到 bash.log
如果exec 跟的是其他命令,則其他命令結束後,本shell也隨之停止

可以看到隨著 echo " hello oracle" 這條指令運行完本 整個腳本執行完畢,後面的 echo " hello db2" 沒有執行!

二、Linux shell 腳本中, $@ 和 $@ 分別是什麼意思?

$@ 表示所有腳本參數的內容

$# 表示返回所有腳本參數的個數

示例:編寫如下shell腳本,保存為test.sh

說明:給腳本提供了兩個參數,所以 @代表了參數的內容!

怎麼理解shell腳本中 exec "`dirname "$0"`/node""$0" "$@" ?
$0            #腳本自己的路徑
"`dirname "$0"`"/node    #腳本目錄下的node程序的路徑
$@            #腳本被執行時的命令行參數

合起來就是:用腳本目錄下的node程序來解釋這個腳本本身

exec scala "$0" "$@" 是什麼意思
這是bash語法。
$0          #表示當前腳本的名字
$@          #表示當前腳本執行的所有參數
exec scala "$0" "$@"   #表示用scala命令,帶參數,執行當前腳本

$0 是位置參數,表示腳本名稱

$1 表示腳本的第一個參數,依次類推直到 $9

exec用於執行命令、或腳本、或外部可執行程序,會新建一個shell去執行

綜上,這里exec sh "$0" 就是執行腳本本身

所以,就是一個循環過程,每隔兩秒列印一次 Hello

㈥ 如何在shell腳本中執行系統命令 小小知識站

方法一:切換到shell腳本所在的目錄(此時,稱為目錄)執行shell腳本:碼碼如下:cd /data/shell./hello.sh./的意思是說在當前的目錄下執行hello.sh。如果不加上./,bash可能會響應找到不到hello.sh的錯誤。因為目前的目錄(/data/shell)可能不在執行程序默認的搜索路徑之列,也就是說,不在環境變數PASH的內容之中。查看PATH的內容可用 echo $PASH 命令。現在的/data/shell就不在環境變數PASH中的,所以必須加上./才可執行。方法二:以絕對路徑的方式去執行bash shell腳本:碼碼如下:/data/shell/hello.sh方法三:直接使用bash 或sh 來執行bash shell腳本:碼碼如下:cd /data/shellbash hello.sh或碼碼如下:cd /data/shellsh hello.sh注意,若是以方法三的方式來執行,那麼,可以不必事先設定shell的執行許可權,甚至都不用寫shell中的第一行(指定bash路徑)。因為方法三是將hello.sh作為參數傳給sh(bash)命令來執行的。這時不是hello.sh自己來執行,而是被人家調用執行,所以不要執行許可權。那麼不用指定bash路徑自然也好理解了啊,呵呵……。方法四:在當前的shell環境中執行bash shell腳本:碼碼如下:cd /data/shell. hello.sh或碼碼如下:cd /data/shellsource hello.sh前三種方行shell腳本時都是在當前shell(稱為父shell)開啟一個子shell環境,此shell腳本就在這個子shell環境中執行。shell腳本執行完後子shell環境隨即關閉,然後又回到父shell中。而方法四則是在當前shell中執行的。

㈦ shell腳本

Shell腳本基本知識
概述:shell其實是內核與用戶之間的一個介面,
shell腳本
如果有一系列經常使用的linux命令,你可以把它們存儲在一個文件腫。shenll可以讀取這個文件,並執行其中的命令。這樣的文件成為腳本文件。
執行shell腳本
要創建一個shell腳本,你要使用任何編輯器比如vi在文本文件中編寫他。
為了使用bashshell賴執行腳本magic,其命令是:bashmagic或者./magic
echo命令:
echo「!」
屏幕上就會回顯「!」
#符號
用於在shell腳本腫可以包含註解入口
echo「hello」
#thisisacommentline.thiswouldnotproceanyoutput!
echo「world!」
第二行是一個註解的例子。它將被shell忽略,而且不產生任何消息
變數:
可以在任何時間通過簡單的賦值來創建。
語法:
<variablename>-<value>
Linux中的所有變數都被當作字元串
引用變數:
$符號用於引用一個變數的內容
variable1=${variable2}
讀入值給變數
在執行shell腳本時,shell還允許用戶直接從鍵盤讀入一個值給變數,還可以使用read命令來作。
$readfname
本地和全局shell變數
局部變數
當引用shell時,只有創建它的shell能夠知道變數的存在
全局變數
稱為子shell
shell中創建的變數局部於創建它的shell,除非使用export命令特別指出是全局的。
環境變數:
通過改變這些變數的值,用戶能夠定製此環境
一些環境變數的例子是HOME,PATH,PS1,PS2,LOGNAME,SHLVL,及SHELL
HOME變數
Linux系統中的每個用戶都有一個相關的稱作HOME的目錄
當一個用戶登錄後,進入相應的HOME的目錄
$echo$HOME
PATH變數
包含一列用冒號定界的目錄的路徑名字,便於可執行程序的搜索。
PS1變數
PS1(PromptString1)變數包含了shell提示符,$符號
$PS1=「HELLO>」
HELLO>
PS2變數
是為第二個提示符設置值的環境變數
LOGNAME變數
包含用戶的注冊名字
$echo「${LOGNAME}」
SHLVL變數
該變數包含當前工作的shelllevel
SHELL變數
環境變數存儲了用戶預設的shell
env命令
可用來查看所有的已移出的環境變數表和它們各自的值!
命令替換
在單個命令行中使用多個命令的另外一種方法(非Pipes)是通過命令替換
echo「thedatais`date`」
expr命令
用於求之算術表達式。該命令的輸出被送到標准輸出
$expr4+5
將在屏幕上顯示9
算術展開:
你可以在$((…))中括一個表達式,用下面的命令來計算它的值;
$((expression))
example1
編寫一個shell腳本用於計算呼叫中心未應答的詢問的數量。該腳本應該接受一天那所報告的詢問的總數和應答的詢問的數量,以便計算未應答的詢問的數量。
所有未應答的詢問總數=所有詢問的總數-應答的詢問的數量
<!--[if!supportLists]-->※<!--[endif]-->※※※※※※※※※※※※※※※※※※※※※※※
條件執行
test和[]
求值表達式,並返回true(0)或false()
數值測試:
-eq等於則為真
-ne不等於則為真
-gt大於則為真
-ge大於等於則為真
-lt小於則為真
-le小於等於則為真
if構造
Linuxshell提供了循環和判定的構造,可以在shell腳本中使用
算術測試
結合if構造,它可以用於測試變數的數字值
串測試
test命令也可以用於字元串
=等於則為真
!=不相等則為真
-z字元串長度為零則為真
-n字元串長度不為零則為真
文件測試
test命令也可以用於檢查文件的狀態
-e文件存在則為真
-r文件存在並且可讀則為真
-w文件存在並且可寫則為真
-x文件存在並且可執行則為真
-s文件存在並且至少有一個字元則為真
-d文件存在並且為目錄則為真
-f文件存在並且為普通文件則為真
-c文件存在並且為字元型文件則為真
-b文件存在並且為塊特殊文件則為真
-a並且-o或者!非
exit命令
用於終止shell腳本的執行並返回到$提示符下
case。。。esac
shell腳本中使用的這個構造依據變數的值而執行一組特定指令
當變數的值和其中的一個值匹配的時候,就執行寫在該值下的一組命令。
example3
迭代
while構造
while<條件>
do
<命令(s)>
done
只有條件為真的時候,才能執行do與done之間的命令
until構造
until循環構造的求值模式於while循環相反
until循環將繼續執行直到求值的條件為真的時候
for構造
forvariable_namein<list_of_values>
do

done
for循環取一列值作為輸入並對循環中每個值執行循環
break和contineu命令
同其他語言中的用法
example4
控制進程的執行
請求後台處理
用於請求後台進程的符號是(&)
$wctempfile&
[1]2082
$vinewfile
檢查後台進程
ps(進程狀態)命令為每個當前的活動的每個進程產生一行入口。
終止後台進程
可用kill,如下所示
kill278
查看完成一個命令所花的時間
你可以使用time命令來查看一個命令從開始到結束所花的時間
timefine/etc–name「passwd」2>/dev/null/dev/null表明忽略錯誤信息。
管道的介紹
垂直條(|)是管道字元
它只是shell:「|」前面命令的輸出作為「|」之後命令的輸入發送
ls–l|more
用管道組合命令,功能強大

㈧ shell腳本read命令的用法

read命令是讀取用戶在鍵盤上輸入的信息,然後賦值到一個變數中;read命令是最常用的一個命令,它主要有三個參數,我們一個一個的講解;

最基本用法:

echo-n "輸入你的姓名:"            

read name

echo "你的姓名$name"

echo後面的-n是指不換行,應為echo默認是換行的;

--------------------------------------------------------------------------

read -p用法

它的作用是在使用read的命令行是可以直接指定一個提示,例如

read -p "輸入你的姓名" name

也就是把echo省略掉了;

-----------------------------------------------------------------------------

read -t用法

使用read命令後,如果你不在鍵盤上輸入一個信息,那系統會一直等待著你的輸入,而-t的用法就相當於計時器的作用,幾秒中內要是沒有輸入信息,那read命令便不會再等下去;

read -t 5 -p "在五秒內輸入你的姓名" name

-----------------------------------------------------------------------------

read -s用法

隱藏輸入的值,就是在鍵盤上輸入密碼這一類的保密數據時不實時的顯示出來;

㈨ 如何創建一個shell腳本檢查命令行參數個數,如果參數不是三個顯示一條錯誤信息,為三個則顯示參數

1、「shell」中有一個特殊變數「$#」:表示包含參數的個數;

2、「if [ $# -ne 3 ] ; then # 」:如果參數不為3個

3、輸入「if [ $# -ne 3 ];then echo errorelse echo "$1 $2 $3"if」

㈩ Shell腳本常用命令

Linux常用命令

ls常用命令

cd常用命令

rm常用命令

grep常用命令

grep命令用於查找文件里符合條件的字元串。

常用指令名稱

-A
–after-context
顯示符合範本樣式的那一行之外及該行之後的內容

輸出內容:
aaaa // 該行高亮
bbbb

-b
–byte-offset
輸出匹配行並且在在該行前展示第幾行

輸出內容:
0: aaaa

-c
–count
輸出符合匹配字元串的行數

輸出內容:
1

其他命令

獲取當前界面元素

獲取任務列表

app入口

啟動應用

列出當前已連接的設備

輸出內容:

連接指定設備

例:(SERIAL的值為adb devices -l 輸出的值)

屏幕截圖

獲取屏幕截圖

錄制視頻

獲取錄制視頻

測試界面性能

輸出中會包含錄制階段所發生的動畫幀的相關性能信息。以下命令使用 gfxinfo 收集指定軟體包名稱的界面性能數據:

輸出最近幀性能信息

檢查網路診斷信息

netstats 服務可提供自設備上次啟動以來收集的網路使用情況統計信息

檢查電池診斷信息

batterystats 服務會生成關於設備電池用量的統計數據

options列表

使用以下命令以計算機可讀的 CSV 格式生成 batterystats 輸出:

輸出內容:

熱點內容
c語言讀程序題 發布:2024-05-19 10:13:52 瀏覽:674
新的安卓手機怎麼樣下載微信 發布:2024-05-19 10:05:06 瀏覽:878
加9的演算法 發布:2024-05-19 10:04:15 瀏覽:263
新名圖配置怎麼樣 發布:2024-05-19 09:31:30 瀏覽:94
php獲取子節點 發布:2024-05-19 09:21:18 瀏覽:160
php生成html 發布:2024-05-19 09:20:24 瀏覽:795
keil編譯步驟 發布:2024-05-19 08:58:12 瀏覽:702
ipad有哪些好用的c語言編譯器 發布:2024-05-19 08:41:56 瀏覽:767
征途手游版腳本 發布:2024-05-19 08:38:11 瀏覽:165
安卓咪咕音樂怎麼錄制視頻 發布:2024-05-19 07:56:06 瀏覽:838