最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

簡化shell終端命令輸入的腳本式快捷鍵工具

 更新時(shí)間:2015年03月05日 09:49:16   投稿:junjie  
這篇文章主要介紹了簡化shell終端命令輸入的腳本式快捷鍵工具,這是一個(gè)shell腳本寫的簡化shell命令輸入的快捷鍵工具,需要的朋友可以參考下

1.解決的問題

當(dāng)你需要一次輸入很多個(gè)命令的時(shí)候,例如一次去多個(gè)目錄刪除文件

復(fù)制代碼 代碼如下:

cd dir1
rm file1.temp
cd ../../dir2
rm -rf dir3

當(dāng)你懶得輸入一個(gè)好長的命令或者直接就記不住那么長的命令的時(shí)候,例如生成ctags
ctags --languages=C++ --exclude=third_party --exclude=.git --exclude=build --exclude=out -R -f .tags

當(dāng)你想要個(gè)類似快捷鍵來一鍵搞定重復(fù)的事情又懶得寫好多腳本的時(shí)候,
duang~~ 這個(gè)工具就有用啦!

2.感性認(rèn)識(shí)

這個(gè)工具是個(gè)shell腳本,附在本文末尾,復(fù)制整個(gè)腳本源碼,在本地保存為rew.sh,放到$PATH下,加上chmod +x權(quán)限。
文件名命名可以按喜好改。r e w 可以用一只左手輸入完畢,然后tab鍵就出.sh了,我感覺挺好的。

前面所說的復(fù)雜操作就變成了這么簡單:

一次去幾個(gè)目錄刪除文件,只需要rew.sh d
如果想指定起始目錄,還可以再帶參數(shù)rew.sh d dir_path

生成ctags,只需要rew.sh ct

如果忘了這個(gè)腳本有什么功能,只需要不帶參數(shù)運(yùn)行crt.sh就會(huì)列出所有的命令。

3.理性認(rèn)識(shí)

如果想加入自定義的命令,找到

復(fù)制代碼 代碼如下:

cmds=(xxxxx)

的地方,增加一行就可以了。每行就是一個(gè)參數(shù)和實(shí)際命令,可以看到:
復(fù)制代碼 代碼如下:

# defines commands here,format:
# shortcut|one space|action
cmds=(
  'w ninja -C out/Debug android_webview_apk'
  'gyp build/gyp_chromium'
  'd gdb -ex=r --args out/Debug/chrome --no-sandbox http://100.84.44.189'
  'ct ctags --languages=C++ --exclude=third_party --exclude=.git --exclude=build --exclude=out -R -f .tags'
  # 'e echo example to show this can be commentted'
  'r ninja -C out/Debug chrome_shell_apk'
  'u updateChrome'
  't testChromeShellMemory'
  'o openUrlInCAWShell'
)

也就是,第一個(gè)空格前是rew.sh的參數(shù)(快捷鍵),第一個(gè)空格后是實(shí)際運(yùn)行的命令。其中多個(gè)步驟的命令可以做成函數(shù),例如:

復(fù)制代碼 代碼如下:

updateChrome() {
  git pull
  cd third_party/WebKit
  git pull
  gclient sync --nohooks
}

如果怕忘記長命令用來干什么,也可以放到函數(shù)里,函數(shù)名要見名知意或者加注釋。

這個(gè)腳本可以被其它腳本調(diào)用,返回值和被代替的命令相同。

附工具腳本:

復(fù)制代碼 代碼如下:

#!/bin/bash
#author liuhx 2015/03/03 http://blog.csdn.net/hursing

# if including multiple steps, combine them into function
updateChrome() {
  git pull
  cd third_party/WebKit
  git pull
  gclient sync --nohooks
}

testChromeShellMemory() {
  ps=`adb shell ps | grep org.chromium.chrome.shell`
  rsss=`echo "$ps" | awk '{print $5;}'`
  echo "$rsss"
  pids=`echo "$ps" | awk '{print $2;}'`
  for p in $pids; do
    adb shell dumpsys meminfo $p | grep TOTAL | awk '{print $2;}'
  done
}

openUrlInCAWShell() {
  # $1 should be url
  adb shell am start -a android.intent.action.VIEW -n com.caw.webkit.test/.BrowserActivity -e policy UCM_CURRENT_WINDOW -d $1
}

# defines commands here,format:
# shortcut|one space|action
cmds=(
  'w ninja -C out/Debug android_webview_apk'
  'gyp build/gyp_chromium'
  'd gdb -ex=r --args out/Debug/chrome --no-sandbox http://100.84.44.189'
  'ct ctags --languages=C++ --exclude=third_party --exclude=.git --exclude=build --exclude=out -R -f .tags'
  # 'e echo example to show this can be commentted'
  'r ninja -C out/Debug chrome_shell_apk'
  'u updateChrome'
  't testChromeShellMemory'
  'o openUrlInCAWShell'
)

echoHelp() {
  for ((i = 0; i < ${#cmds[@]}; i++)); do
    echo "${cmds[$i]}"
  done
  shName=`basename $0`
  echo -e "\033[0;33;1mexample: input '$shName ${cmds[0]%% *}' to run '${cmds[0]#* }'\033[0m"
}

if [[ $# -eq 0 ]]; then
  echoHelp
  exit 255
fi

for ((i = 0; i < ${#cmds[@]}; i++)); do
  cmd=${cmds[$i]}
  shortcut=${cmd%% *}
  if [[ "$shortcut"x == "$1"x ]]; then
    action=${cmd#* }
    echo -e "\033[0;33;1m$action\033[0m"
    # skip shortcut
    shift 1
    eval $action $@
    exit $?
  fi
done

# if no cmd matched, echoHelp
echoHelp

相關(guān)文章

  • awk腳本統(tǒng)計(jì)一組單詞中字母出現(xiàn)最多最少頻率

    awk腳本統(tǒng)計(jì)一組單詞中字母出現(xiàn)最多最少頻率

    這篇文章主要介紹編寫一個(gè) awk 腳本來找到一組單詞中出現(xiàn)次數(shù)最多(和最少)的單詞頻率,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-03-03
  • 一個(gè)測試下載速度的shell腳本

    一個(gè)測試下載速度的shell腳本

    這篇文章主要介紹了一個(gè)測試下載速度的shell腳本,需要的朋友可以參考下
    2014-03-03
  • 一些你必須要熟練掌握的git命令

    一些你必須要熟練掌握的git命令

    git 現(xiàn)在的火爆程度非同一般,它被廣泛地用在大型開源項(xiàng)目,團(tuán)隊(duì)開發(fā),以及獨(dú)立開發(fā)者,甚至學(xué)生之中。下面這篇文章主要給大家分享了一些你必須要熟練掌握的git命令,文中通過示例代碼介紹的非常詳細(xì),需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧。
    2018-02-02
  • Linux find 命令完全指南及核心用法

    Linux find 命令完全指南及核心用法

    find 是 Linux 系統(tǒng)最強(qiáng)大的文件搜索工具,支持 嵌套遍歷、條件篩選、執(zhí)行動(dòng)作,下面給大家介紹Linux find 命令完全指南,感興趣的朋友一起看看吧
    2025-03-03
  • Bash腳本內(nèi)置的調(diào)試方法技巧

    Bash腳本內(nèi)置的調(diào)試方法技巧

    這篇文章主要介紹了Bash腳本內(nèi)置的調(diào)試方法技巧,本文介紹了調(diào)試技巧和幾個(gè)調(diào)試技巧,比如輸出行號(hào)的方法、只調(diào)試某段程序的方法,需要的朋友可以參考下
    2015-04-04
  • 寫一個(gè)shell腳本實(shí)現(xiàn)視頻處理

    寫一個(gè)shell腳本實(shí)現(xiàn)視頻處理

    Linux和Unix都擁有很多能夠處理圖像和視頻文件的應(yīng)用程序和工具,下面這篇文章主要給大家介紹了關(guān)于如何寫一個(gè)shell腳本來實(shí)現(xiàn)視頻處理的相關(guān)資料,需要的朋友可以參考下
    2022-07-07
  • 詳解Linux使用shell+expect遠(yuǎn)程登錄主機(jī)

    詳解Linux使用shell+expect遠(yuǎn)程登錄主機(jī)

    這篇文章主要介紹了詳解Linux使用shell+expect遠(yuǎn)程登錄主機(jī)的相關(guān)資料,這里提供了詳細(xì)的實(shí)現(xiàn)步驟,需要的朋友可以參考下
    2017-08-08
  • Linux中的特殊符號(hào)與正則表達(dá)式

    Linux中的特殊符號(hào)與正則表達(dá)式

    這篇文章主要介紹了Linux中的特殊符號(hào)與正則表達(dá)式,需要的朋友可以參考下
    2017-09-09
  • shell腳本輸出多個(gè)主機(jī)的網(wǎng)卡速率的方法

    shell腳本輸出多個(gè)主機(jī)的網(wǎng)卡速率的方法

    這篇文章主要介紹了shell腳本輸出多個(gè)主機(jī)的網(wǎng)卡速率的方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-12-12
  • Linux?expr?命令的使用小結(jié)

    Linux?expr?命令的使用小結(jié)

    expr是命令行計(jì)算器,一般用在數(shù)字和字符串上面,本篇文章給大家介紹Linux?expr?命令的使用小結(jié),感興趣的朋友跟隨小編一起看看吧
    2023-10-10

最新評論

泾源县| 兰坪| 疏勒县| 乐至县| 贺兰县| 鄂州市| 土默特右旗| 巴彦淖尔市| 分宜县| 且末县| 东莞市| 仁布县| 土默特左旗| 镶黄旗| 兖州市| 玉溪市| 博乐市| 买车| 炉霍县| 娄烦县| 罗定市| 竹山县| 浦县| 昌江| 金川县| 个旧市| 开江县| 贵德县| 西充县| 鄱阳县| 公主岭市| 贵定县| 蒲江县| 泌阳县| 富裕县| 大埔区| 鹤山市| 抚宁县| 西林县| 武山县| 泰州市|