1. 程式人生 > >shell執行多個指令

shell執行多個指令

$n        $1 the first parameter,$2 the second... 
$#        The number of command-line parameters. 
$0        The name of current program. 
$?        Last command or function's return value. 
$$        The program's PID. 
$!        Last program's PID. 
[email protected]        Save all the parameters. 


如果上條指令可以正常執行結束,則

$?為0,否則不為0

例如

ll

echo $?

輸出0

如果本目錄下沒有可以執行程式 aaa

執行 aaa

echo $?

輸出127

(1)在每個命令之間用;(分號)隔開。

(2)在每個命令之間用&&隔開。

&&表示:若前一個命令執行成功,才會執行下一個。這樣,可確保所有的命令執行完畢後,其執行過程都是成功的

這種執行方法,經常運用在自動安裝的Script中。

例如:自動安裝Apache及PHP的Script檔案:

#! /bin/bash

# 解壓

tar xvzf httpd-2.2.tar.gz &&

tar xvzf php-5.3.tar.gz &&

#設定Apache

echo "Configure apache……" &&

cd httpd-2.2 &&

 make &&

make install &&

……

echo "done"

echo 

這個Script檔案,各指令都用&&串接,因此,若順利執行完畢,表示中間的編譯過程無誤,並且,在執行後,安裝確實是成功的。

另外,在script檔案中,如果某一行太長寫不完,可以行末,放置接續上行的符號"/"

(3)在每個命令之間用||隔開。

||表示:若前一個命令執行成功,就不會執行下一條了

(4)也可以把數個命令弄成一組,然後整組去執行它,方法有二:

1、(命令1;命令2;命令3;……)

()會開啟一個子Shell環境來執行此括號中的命令組。

以下是把一組命令放入後臺中執行的範例:

(sort mydate -o test.txt;procdata test.txt) &&

2、{命令1;命令2;命令3;…… }   //注意,{的右邊有一空格,}的左邊也有一空格。

與上一種方法不同的是,此法是把這些命令組成在現行的Shell中執行,而非在子Shell中執行。

特別要注意的是,在”{“的右邊 和”}“的左邊,至少要間隔一個以上的空格,而且每個命令都要以;(分號)作為結尾。


還有一種方法,如果上一條指令失敗後,指令碼就停止執行

command1

test $? -ne 0 && exit

command2

相關推薦

shell執行指令

$n        $1 the first parameter,$2 the second... $#        The number of command-line parameters. $0        The name of current program

unix 用shell執行sql檔案

#!/bin/sh sqlplus 'user/[email protected](DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=XXXX.c5xno4i0lfo4.ap-northeast-1.rds.amazonaws.co

shell執行命令的方法

shell中執行多個命令的方法 1、在命令列中同時輸入多個語句: 直接在linux命令列中可以依次執行多個命令,多個命令間可採用“;”、“&&”和"||"分割,三個分隔符作用不同: (1);分割符:前後命令間沒有必然的聯絡,前一個執行結束後、再執行第二個,沒有邏輯關聯;

linux的shell指令碼中執行命令的方法

第一種是以分號(;)進行劃分:表示:各命令的執行的果,不會影響其它命令的執行。換句話說,各個命令都會執行,但不保證每個命令都執行成功。 第二種命令之間&&隔開 表示:若前面的命令執

【Jenkins】——shell執行指令碼

前言   前面已經寫了一篇部落格   上篇部落格中只提到了在shell中只執行一個指令碼,生成對應的jtl檔案   並對其進行資料分析。   有些時候我們可能需要測試很多的指令碼,但是因為每

[work] Shell 同時執行指令碼

1、背景是 有三個指令碼a.py, b.py, c.py 三個都是爬蟲,裡面都是while(true)方式執行的,不會主動執行結束。 每次啟動他們,就需要: python a.py > logs/a.log python b.py > logs/b.log python c.

shell當中命令放在一起執行的幾方法

1、命令之間用;分割說明:shell命令會按照順序執行下來,但是不能保證每條命令都執行成功栗子:2、命令之間用&&隔開說明:前面的命令執行成功,才會執行後面的命令,否則後面的命令不執行3、命令之間用||隔開說明:前面的命令執行失敗,才會執行後面的命令4、命令之

linux 下shell指令碼執行命令的方法

1.每個命令之間用;隔開 說明:各命令的執行給果,不會影響其它命令的執行。換句話說,各個命令都會執行, 但不保證每個命令都執行成功。 2.每個命令之間用&&隔開說明:若前面的命令執行成功,才會去執行後面的命令。這樣可以保證所有的命令執行完畢後,執行過程都是

使用shell並行執行指令碼

  有沒有一種比較通用的並行執行多個SQL指令碼的方法呢?每種資料庫都提供命令列介面執行SQL語句,因此最容易想到的就是通過初始化多個併發的會話並行執行,每個會話執行一個單獨的查詢,用來抽取不同的資料部分。以Oracle例如,假設要從訂單表抽取資料,訂單表已經是按月做了範圍分

shell同時執行scrapy命令

專案中單機使用shell指令碼進行多個scrapy命令的執行,即同個shell進行多個scrapy命令的執行,這樣會大大提高爬取效率,好好利用CPU使用率 在shell命令列一次執行多個scr

Java異步執行HTTP請求的例子(需要apache http類庫)

ride 同步 conn done 例子 latch block org ftw 直接上代碼 package org.jivesoftware.spark.util; import java.io.IOException; import java.uti

怎樣用批處理來執行exe文件

asc pri line views bat文件 tro ext sta each 怎樣用批處理來運行多個exe文件 @echo off start *****.exe start *****.exe start *****.exe star

Python開發【筆記】:單線程下執行定時器

自動 代碼 python 線程 timer ont -s 大量 過多 單線程多定時器   前言:公司業務需求,實例當中大量需要啟動定時器的操作;大家都知道python中的定時器用的是threading.Timer,每當啟動一個定時器時,程序內部起了一個線程,定時器觸發執行結

使用SQLCMD在SQLServer執行腳本

created 告訴 out c盤 order 步驟 null bat文件 mar 概述: 作為DBA,經常要用開發人員提供的SQL腳本來更新正式數據庫,但是一個比較合理的開發流程,當提交腳本給DBA執行的時候,可能已經有幾百個sql文件,並且有執行順

python爬蟲scrapy之如何同時執行scrapy爬行任務

還需 學習 lis 參數 文件名 其中 .project 自定義 com 背景:   剛開始學習scrapy爬蟲框架的時候,就在想如果我在服務器上執行一個爬蟲任務的話,還說的過去。但是我不能每個爬蟲任務就新建一個項目吧。例如我建立了一個知乎的爬行任務,但是我在這個爬行任務中

scrapy順序執行爬蟲

clas aio 爬蟲 sleep class abs pan path execute 1 # -*- coding:utf-8 -*- 2 3 from scrapy import cmdline 4 from scrapy.cmdline import e

docker容器啟動時執行腳本 run /bin/bash執行指令

null 最好 執行 ash .sh bash 指令 docke -i 1、首先需要編寫需要啟動的腳本,並將腳本放在 /etc/init.d/目錄下 如:cs.sh 2、修改權限 3、chkconfig --add cs.sh 4、 chkconfig cs.sh on 啟

testng.xml 執行測試用例

pan nis -- 編輯 XML ini 執行 demo 名稱 1.在工程名字上點擊右鍵,點擊【New】-->【File】 2.在彈出的【New File】對話框中的【File name】輸入【testng.xml】,點擊【Finish】即創建了一個testng的

Appium自動化測試-同時執行裝置

在之前的文章中,學習了Appium的基本使用,可以參考Appium自動化測試-入門,我們接著學習一下在一臺電腦中同時執行多裝置的方法,這樣在測試多種裝置的時候,可以直接在本地完成。 一、啟動Appium 一個Appium伺服器只能連線一個測試裝置進行測試,如果要在一臺電腦上同時測

Docker建立執行mysql容器的方法示例

1.使用mysql/mysql-server:latest映象快速啟動一個Mysql例項 docker run --name ilink_user_01 -e MYSQL_ROOT_PASSWORD=123456 0d 0p 3307:3306 mysql/mysql-server:latest