ツールウィンドウ:

ツールウィンドウ:

外部ツールを使用してdbgenというプログラムをビルドして実行したいと思います。私はこの変数がファイル名を保持していることを知ってdbgen.c‍‍います

$GEDIT_CURRENT_DOCUMENT_NAME

.cここですべてのファイル名に使用できるようにその部分を削除するにはどうすればよいですか?

#!/bin/sh
make dbgen
./dbgen

また、存在するかどうかを確認する方法を知りたいです。makefile存在しない場合は、次gccのデフォルトフラグを使用してください。CFLAGS=-Wall -g

ツールウィンドウ:

ここに画像の説明を入力してください。

ベストアンサー1

拡張機能の削除:

${varname%.ext}sh / bash / zshの拡張機能を試してください。たとえば、

#!/bin/sh
# ...
file_name_with_out_ext="${GEDIT_CURRENT_DOCUMENT_NAME%.c}"

(ただし、これにより、.c拡張子のみが削除され、.h、.cpp、またはその他の拡張子は保持されます。)

ファイルが存在するかどうかをテストします。

test[あるいは、コマンドまたは組み込みコマンドを使用して、ファイル(makefileなど)がシェル(sh / bash / zsh)に存在するかどうかをテストできます[[

test -e some_file_name && echo exists
[ -e some_file_name ] && echo exists
[[ -e some_file_name ]] && echo exists

test(1)、bash(1)、またはzshbuildins(1)のマニュアルページを確認してください。

ファイルフラグを作成します。

あなたが言うのはこれです:

if [[ -e makefile ]]; then 
  make CFLAGS='-Wall -g' my_target
else
  make my_target
fi

おすすめ記事