成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

entr:文件更改時重新運行構建

系統 Linux
這是一篇簡短的文章。我是最近才發現 entr 的,我很驚奇從來沒有人告訴過我?!因此,如果你和我一樣,那么我告訴你它是什么。

[[333412]]

這是一篇簡短的文章。我是最近才發現 entr 的,我很驚奇從來沒有人告訴過我?!因此,如果你和我一樣,那么我告訴你它是什么。

entr 的網站上對它已經有很好的解釋,也有很多示例。

總結在其頭部:entr 是一個命令行工具,當每次更改一組指定文件中的任何一個時,都能運行一個任意命令。你在標準輸入給它傳遞要監控的文件列表,如下所示:

  1. git ls-files | entr bash my-build-script.sh

或者

  1. find . -name *.rs | entr cargo test

或者任何你希望的。

快速反饋很棒

就像世界上的每個程序員一樣,我發現每次更改代碼時都必須手動重新運行構建/測試非常煩人。

許多工具(例如 hugo 和 flask)都有一個內置的系統,可以在更改文件時自動重建,這很棒!

但是通常我會自己編寫一些自定義的構建過程(例如 bash build.sh),而 entr 讓我有了一種神奇的構建經驗,我只用一行 bash 就能得到即時反饋,知道我的改變是否修復了那個奇怪的 bug。萬歲!

重啟服務器(entr -r)

但是如果你正在運行服務器,并且每次都需要重新啟動服務器怎么辦?如果你傳遞 -r,那么 entr 會幫你的

  1. git ls-files | entr -r python my-server.py

清除屏幕(entr -c)

另一個簡潔的標志是 -c,它讓你可以在重新運行命令之前清除屏幕,以免被前面構建的輸出分散注意力。

與 git ls-files 一起使用

通常,我要跟蹤的文件集和我在 git 中的文件列表大致相同,因此將 git ls-files 傳遞給 entr 是很自然的事情。

我現在有一個項目,有時候我剛創建的文件還沒有在 git 里。那么如果你想包含未被跟蹤的文件怎么辦呢?這些 git 命令行參數就可以做到(我是從一個讀者的郵件中得到的,謝謝你!):

  1. git ls-files -cdmo --exclude-standard | entr your-build-script

有人給我發了郵件,說他們做了一個 git-entr 命令,可以執行:

  1. git ls-files -cdmo --exclude-standard | entr -d "$@"

我覺得這真是一個很棒的主意。

每次添加新文件時重啟:entr -d

git ls-files 的另一個問題是有時候我添加一個新文件,當然它還沒有在 git 中。entr 為此提供了一個很好的功能。如果你傳遞 -d,那么如果你在 entr 跟蹤的任何目錄中添加新文件,它就會退出。

我將它與一個 while 循環配合使用,它將重啟 entr 來包括新文件,如下所示:

  1. while true
  2. do
  3. { git ls-files; git ls-files . --exclude-standard --others; } | entr -d your-build-scriot
  4. done

entr 在 Linux 上的工作方式:inotify

在 Linux 中,entr 使用 inotify(用于跟蹤文件更改這樣的文件系統事件的系統)工作。如果用 strace 跟蹤它,那么你會看到每個監控文件的 inotify_add_watch 系統調用,如下所示:

  1. inotify_add_watch(3, "static/stylesheets/screen.css", IN_ATTRIB|IN_CLOSE_WRITE|IN_CREATE|IN_DELETE_SELF|IN_MOVE_SELF) = 1152

就這樣了

我希望這可以幫助一些人了解 entr

 

責任編輯:龐桂玉 來源: Linux中國
相關推薦

2020-02-01 16:16:31

UbuntuLinuxWindows

2013-04-10 15:35:49

IDF2013英特爾柏安娜

2019-07-03 09:32:11

APIGGVKong

2018-05-02 13:40:51

Linux命令touch

2011-02-13 13:44:08

Linux關機重新啟動

2018-06-26 10:34:39

云遷移架構云計算

2012-03-19 10:46:53

ibmdw

2021-05-19 14:25:19

前端開發技術

2021-05-17 15:08:27

PythonWindows背景編程語言

2024-10-30 08:15:18

2024-03-12 10:05:47

大型語言模型

2020-02-21 11:08:24

瀏覽器HTML設計

2011-09-09 19:33:49

Windowsxp文件關聯

2018-10-24 12:15:06

無服務器軟件方式

2020-02-16 12:01:53

Windows 10Windows微軟

2019-07-29 08:00:18

文件容器Docker Comp

2020-08-19 14:48:10

人工智能IBMIBM Cloud P

2023-07-21 10:56:17

人工智能數據中心

2009-06-14 18:05:58

ibmdwWebSphere

2009-02-10 10:45:13

arm-linux仿真運行環境NFS
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: a级在线免费视频 | 午夜影院 | 最新av在线播放 | 亚洲精品久久 | 爱爱无遮挡 | 亚洲免费精品 | 亚洲一区不卡在线 | 欧美激情一区二区三级高清视频 | 亚洲欧美在线观看 | 伊人春色成人 | 一级做a爰片性色毛片16美国 | 日本小电影在线 | 成人亚洲精品久久久久软件 | 国产精品99久久久久久宅男 | 一区二区三区四区不卡视频 | 免费久久99精品国产婷婷六月 | 国产美女在线精品免费 | 99精品久久久久久久 | 亚洲精品国产精品国自产在线 | 国产亚洲一区二区精品 | 国产亚洲一区二区在线观看 | 岛国视频| 91久久精品一区二区三区 | 日韩精品一区二区三区在线观看 | 91pao对白在线播放 | 自拍偷拍3p | 国产免费让你躁在线视频 | 亚洲狠狠| 99草免费视频 | 国产丝袜人妖cd露出 | 在线视频一区二区三区 | 少妇一级淫片aaaaaaaaa | 欧美人人 | 国产精品婷婷 | 男女羞羞免费视频 | 中文字幕av一区二区三区 | 黑人一级黄色大片 | a看片| 一级看片 | 国产一区二区在线免费视频 | 精品国产一区二区 |