亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 開發 > Linux Shell > 正文

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

2020-07-27 19:08:20
字體:
來源:轉載
供稿:網友

1.解決的問題

當你需要一次輸入很多個命令的時候,例如一次去多個目錄刪除文件

復制代碼 代碼如下:

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

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

當你想要個類似快捷鍵來一鍵搞定重復的事情又懶得寫好多腳本的時候,
duang~~ 這個工具就有用啦!

2.感性認識

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

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

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

生成ctags,只需要rew.sh ct

如果忘了這個腳本有什么功能,只需要不帶參數運行crt.sh就會列出所有的命令。

3.理性認識

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

復制代碼 代碼如下:

cmds=(xxxxx)

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

# 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'
)

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

復制代碼 代碼如下:

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

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

這個腳本可以被其它腳本調用,返回值和被代替的命令相同。

附工具腳本:

復制代碼 代碼如下:

#!/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

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
日韩高清不卡av| 一本一本久久a久久精品牛牛影视| 久久综合色影院| 成人免费视频网| 在线电影欧美日韩一区二区私密| 中文字幕亚洲欧美日韩2019| 日韩精品中文字幕视频在线| 色偷偷av一区二区三区乱| 色老头一区二区三区在线观看| 日本三级久久久| 欧美最顶级丰满的aⅴ艳星| 国产亚洲精品va在线观看| 欧美大尺度激情区在线播放| 国产成人拍精品视频午夜网站| 欧美性猛交xxx| 国产91在线播放精品91| 欧美精品一区二区三区国产精品| 亚洲精品免费av| 日韩一区在线视频| 欧美日韩国产中文精品字幕自在自线| 亚洲福利精品在线| 亚洲毛片在线免费观看| 一区三区二区视频| 亚洲三级 欧美三级| 国产美女久久精品香蕉69| 亚洲激情国产精品| 久久久久久久久久国产| 亚洲成人a**站| 久久精品一本久久99精品| 亚洲精品免费在线视频| 亚洲最大中文字幕| 日本午夜在线亚洲.国产| 欧美午夜无遮挡| 欧美亚洲日本网站| 欧美限制级电影在线观看| 一区二区福利视频| 操91在线视频| 亚洲已满18点击进入在线看片| 国产在线精品成人一区二区三区| 欧美午夜激情在线| 97国产精品视频| 欧美一区二区.| 欧美综合一区第一页| 国产成人综合久久| 亚洲国产精品电影在线观看| 欧美极品在线视频| 国产日韩欧美中文| 欧美wwwwww| 国产色综合天天综合网| 91国在线精品国内播放| 久精品免费视频| 欧美天天综合色影久久精品| 国产一区二区三区在线视频| 日本人成精品视频在线| 欧美日韩高清在线观看| 成人av.网址在线网站| 精品久久久中文| 欧美区二区三区| 中文字幕亚洲自拍| 亚洲高清免费观看高清完整版| 精品国产乱码久久久久久婷婷| 欧美日韩亚洲精品一区二区三区| 欧美在线一级va免费观看| 亚洲少妇激情视频| 日韩免费在线免费观看| 日韩欧美在线中文字幕| 精品自在线视频| 久久久久久久色| 国产综合在线观看视频| 亚洲成人a**站| 国产午夜精品理论片a级探花| 亚洲欧洲xxxx| 欧美大片在线免费观看| 久久久999精品免费| 亚洲九九九在线观看| 国产美女精彩久久| 国语自产精品视频在线看抢先版图片| 91免费精品国偷自产在线| 久久亚洲精品国产亚洲老地址| 亚洲欧美综合另类中字| 欧美日韩国产在线看| 精品偷拍各种wc美女嘘嘘| 日韩久久免费视频| 亚洲欧洲激情在线| 欧美日韩免费一区| 欧美精品久久久久久久久| 欧美亚洲另类视频| 国产精品一久久香蕉国产线看观看| 国产精品成人播放| 麻豆成人在线看| 欧美二区在线播放| 中文日韩在线视频| 国产欧美精品va在线观看| 日韩电影中文字幕一区| 亚洲精品中文字| 久久久爽爽爽美女图片| www.亚洲人.com| 欧美国产在线电影| 亚洲综合一区二区不卡| 在线日韩精品视频| 青草青草久热精品视频在线观看| 欧美日韩在线视频一区| 色综合久久88色综合天天看泰| 国产欧美日韩免费看aⅴ视频| 久久6精品影院| 91av在线免费观看| www国产91| 人人做人人澡人人爽欧美| 国产视频精品va久久久久久| 国产网站欧美日韩免费精品在线观看| 欧美午夜精品在线| 午夜精品一区二区三区在线播放| 久热精品视频在线免费观看| 亚洲性夜色噜噜噜7777| 久久99久久亚洲国产| 九九热最新视频//这里只有精品| 一区二区欧美久久| 久久久视频在线| 91日本在线观看| 亚洲自拍在线观看| 欧美一区二区大胆人体摄影专业网站| 操91在线视频| 91国产精品电影| 亚洲3p在线观看| 欧美野外猛男的大粗鳮| 91精品国产亚洲| 国产成人精品综合| 欧美激情视频在线观看| 午夜精品一区二区三区在线播放| 国产精品久久久久久搜索| 欧美尺度大的性做爰视频| 亚洲精品美女免费| 久久精品久久久久| 国产成人精彩在线视频九色| 国产欧美久久一区二区| 国产精品18久久久久久首页狼| 久久在线精品视频| 97在线视频免费看| 精品久久国产精品| 国产精品入口夜色视频大尺度| 操日韩av在线电影| 最好看的2019年中文视频| 亚洲欧美日韩一区二区三区在线| 亚洲www视频| 91在线视频免费| 欧洲成人午夜免费大片| 国产69精品久久久久9999| 欧美亚洲另类激情另类| 国产日韩欧美91| 日韩精品视频观看| 日日狠狠久久偷偷四色综合免费| 日韩电影免费观看在线观看| 国产精品久久久久久亚洲调教| 久久人人97超碰精品888| 国产a∨精品一区二区三区不卡| 永久555www成人免费| 日韩美女免费线视频| 国产精品第一第二| 国产精品久久77777| 欧美高清视频在线播放| 欧美激情2020午夜免费观看| 久久精品国产91精品亚洲| 国产午夜精品免费一区二区三区| 亚洲激情中文字幕|