簡體   English   中英

Bash腳本在新終端中打開可執行文件

[英]Bash script to open executable in a new terminal

我的意圖是使工作流程中的編譯過程自動化。 我在根目錄中只有一個Makefile ,我發現自己不斷輸入make來查看結果,然后輸入SIGTERM刷新(我正在運行OS X 10.8.5)。 理想情況下,bash腳本會偵聽文件中的更改,並在進行更改時自動進行更改,然后運行可執行文件。

我有以下嘗試來實現bash腳本。

#!/bin/bash

while true
do
    ATIME=`stat library/grid.c | egrep -o -m 3 '"(.{20})"' | tail +4`

    if [[ "$ATIME" != "$LTIME" ]]
    then
        echo "Running make..."
        bash -e make; ./sheet
        LTIME=$ATIME
    fi
    sleep 1
done

這導致以下錯誤

/usr/bin/make: /usr/bin/make: cannot execute binary file
./listener.sh: line 10: ./sheet: No such file or directory

如何發出命令以在新的終端窗口中制作和運行可執行文件? 這樣做的重點是,我可以保持bash腳本運行,在后台監聽更改,而無需執行文件接管。

為任何命令(不僅是make)運行bash -e <cmd>是不合法的。 提供給bash的參數應該是shell腳本 ,而不是程序。

我不知道您為什么要使用這樣的外殼; 為什么不直接運行make 但是,如果您真的想在bash中運行make ,則必須使用-c標志。

如果要執行的操作是在make失敗的情況下停止腳本,請使用:

make || exit 1
./sheet

如果您想繼續執行錯誤但不運行命令,請使用:

make && ./sheet

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM