質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.46%
ファイル

ファイルとは、文字列に基づいた名前又はパスからアクセスすることができる、任意の情報のブロック又は情報を格納するためのリソースです。

コマンド

コマンドとは特定のタスクを行う為に、コンピュータープログラムへ提示する指示文です。多くの場合、コマンドはShellやcmdようなコマンドラインインターフェイスに対する指示文を指します。

コマンドライン

コマンドライン(別名:Command Line Interface)は、ユーザに命令の入力を促す(プロンプト)文字列の表示を行い、すべての操作をキーボードを用いて文字列を打ち込む事でプログラムを走らせるユーザインターフェースです。

sh

shは、UNIX系OSのシェル操作の1つであり、最も基本的なシェルのことです。

Q&A

解決済

1回答

558閲覧

.shファイルでコマンドを変数に格納して使う方法

退会済みユーザー

退会済みユーザー

総合スコア0

ファイル

ファイルとは、文字列に基づいた名前又はパスからアクセスすることができる、任意の情報のブロック又は情報を格納するためのリソースです。

コマンド

コマンドとは特定のタスクを行う為に、コンピュータープログラムへ提示する指示文です。多くの場合、コマンドはShellやcmdようなコマンドラインインターフェイスに対する指示文を指します。

コマンドライン

コマンドライン(別名:Command Line Interface)は、ユーザに命令の入力を促す(プロンプト)文字列の表示を行い、すべての操作をキーボードを用いて文字列を打ち込む事でプログラムを走らせるユーザインターフェースです。

sh

shは、UNIX系OSのシェル操作の1つであり、最も基本的なシェルのことです。

0グッド

0クリップ

投稿2021/09/03 03:59

提示コードのecho "あああ"のコード部ですがここにコードが達していないのにもかかわらず実行されてしまいます。つまり上の変数部のコードでコマンドが実行されているためだと思われるのですがどうすれば変数にコマンドを格納して提示コードのように関数化して実行できるのでしょうか?

#!/bin/bash $result # 結果 $cmdCompile javac -verbose -cp lib/pdfbox.jar:lib/commons.jar: src/*.java -d bin # コンパイル $cmdGenerateJarFile jar cvfm PDFConverter.jar manifest.mf -C bin ./ # .jarファイル生成 $cmdExecutableJar java -jar PDFConverter.jar # .jar実行 # コンパイル function Compile() { $cmdCompile result=$? } # .jarファイル生成 function GenerateJar() { $cmdGenerateJarFile result=$? } #.jarファイル実行 function ExceutableJar() { $cmdExecutableJar result=$? } ### コマンド実行 Compile() if [ reuslt -eq 1 ] ; then echo -e echo -e echo "コンパイルエラー" echo -e echo -e else echo "ああああ" GenerateJar() if [ reuslt -eq 1 ] ; then echo -e echo -e echo ".jarファイル生成エラー" echo -e echo -e else ExcutebleJar() if [ reuslt -eq 1 ] ; then echo -e echo -e echo ".jar実行エラー" echo -e echo -e fi fi fi #コンパイル

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

sh

1$cmdCompile javac -verbose -cp lib/pdfbox.jar:lib/commons.jar: src/*.java -d bin

で、変数に格納しているつもりと言うことなのでしょうか?
変数への格納は変数名=値です。空白を含んだ値は引用符で囲みます。

sh

1cmdCompile="javac -verbose -cp lib/pdfbox.jar:lib/commons.jar: src/*.java -d bin"

投稿2021/09/03 04:51

otn

総合スコア84808

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2021/09/03 05:07

なるほど以下のようにしましたがうまく実行できません $result # 結果 cmdCompile="javac -verbose -cp lib/pdfbox.jar:lib/commons.jar: src/*.java -d bin" # コンパイル cmdGenerateJarFile="jar cvfm PDFConverter.jar manifest.mf -C bin ./" # .jarファイル生成 cmdExecutableJar="java -jar PDFConverter.jar" # .jar実行 # コンパイル function Compile() { cmdCompile result=$? } # .jarファイル生成 function GenerateJar() { cmdGenerateJarFile result=$? } #.jarファイル実行 function ExceutableJar() { cmdExecutableJar result=$? }
otn

2021/09/03 05:14 編集

変数の値を参照するには、変数名の頭に $ を付けます。 $cmdCompile など。 関数の構文を知っていると言うことは、何も読まず調べずに書いているとは思えないのですが、何を参考に書いているのでしょう?
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.46%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問