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

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

新規登録して質問してみよう
ただいま回答率
85.48%
bash

bash(Bourne-again-Shell)は sh(Bourne Shell)のインプリメンテーションに様々な機能が追加されたシェルです。LinuxやMac OS XではBashはデフォルトで導入されています。

Linux

Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。

コマンド

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

コマンドプロンプト

コマンドプロンプト(cmd.exe)はMicrosoftによって提供されているコマンドラインインタプリタです。OS/2・Windows CE・Windows NTで使用可能です。

Q&A

解決済

1回答

539閲覧

iniファイルの読み込み時に設定なしか否かを判断する方法

SmartBuzz

総合スコア81

bash

bash(Bourne-again-Shell)は sh(Bourne Shell)のインプリメンテーションに様々な機能が追加されたシェルです。LinuxやMac OS XではBashはデフォルトで導入されています。

Linux

Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。

コマンド

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

コマンドプロンプト

コマンドプロンプト(cmd.exe)はMicrosoftによって提供されているコマンドラインインタプリタです。OS/2・Windows CE・Windows NTで使用可能です。

0グッド

0クリップ

投稿2017/09/15 06:58

2つのiniファイルから設定を読み込んで、共通設定ファイルをノーマルとして、個別設定ファイルに設定がもしあればその設定を使うまたは追加で使うというコードを書きたいと思っています。

しかし、現状 -n -z " "などの判断基準では判断してくれず困っています。
方法を教えて頂きたいです。

Common.ini

1aaaaA=xxxx 2iiiiA=yyyy 3uuuuA=pppp

config.ini

1aaaaB=zzzz 2iiiiB=tttt 3uuuuB=

bash

1. Common.ini 2. config.ini 3 4CONFIG_AAAA=$aaaaA #共通設定から読み込み 5if [[ -n "$aaaaB" ]]; then #個別設定に項目があるか 6 if [[ " " != "$aaaaB" ]]; then #設定値があるか 7 CONFIG_AAAA=$aaaaB #上書き 8 fi 9fi 10#期待値:CONFIG_AAAAにはzzzzが入る 11 12CONFIG_BBBB=$iiiiA #共通設定から読み込み 13if [[ -n "$iiiiB" ]]; then #個別設定に項目があるか 14 if [[ " " != "$iiiiB" ]]; then #設定値があるか 15 CONFIG_BBBB=CONFIG_BBBB+$iiiiB #追記 16 fi 17fi 18#期待値:CONFIG_BBBBにはyyyytttttが入る 19 20CONFIG_CCCC=$uuuuA #共通設定から読み込み 21if [[ -n "$uuuuB" ]]; then #個別設定に項目があるか 22 if [[ " " != "$uuuuB" ]]; then #設定値があるか 23 CONFIG_CCCC=$uuuuB #上書き 24 fi 25fi 26#期待値:CONFIG_CCCCにはppppが入る

現状、個別設定ファイル値が空白の場合、そこの条件を通り抜けてしまって空文字で上書きされてしまいます。

個別設定ファイルの値が何もない時はどう判断すればよいのでしょうか?

教えてください。
よろしくお願いいたします。

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

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

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

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

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

guest

回答1

0

ベストアンサー

for文を使ってみました。

bash

1#!/bin/sh 2 3for xx in $aaaaA $aaaaB; do 4 CONFIG_AAAA=$xx #上書き 5done 6 7for xx in $iiiiA $iiiiB; do 8 CONFIG_BBBB=$CONFIG_BBBB$xx 9done 10 11for xx in $uuuuA $uuuuB; do 12 CONFIG_CCCC=$xx #上書き 13done 14

bash

1#!/bin/sh 2. ./Common.ini 3. ./config.ini 4 5CONFIG_AAAA=$aaaaA #共通設定から読み込み 6for xx in $aaaaB; do 7 CONFIG_AAAA=$xx #上書き 8done 9 10CONFIG_BBBB=$iiiiA #共通設定から読み込み 11for xx in $iiiiB; do 12 CONFIG_BBBB=CONFIG_BBBB+$xx 13done 14 15CONFIG_CCCC=$uuuuA #共通設定から読み込み 16for xx in $uuuuB; do 17 CONFIG_CCCC=$xx #上書き 18done 19 20echo $CONFIG_AAAA 21echo $CONFIG_BBBB 22echo $CONFIG_CCCC

投稿2017/09/15 09:48

編集2017/09/15 15:06
A.Ichi

総合スコア4070

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問