ベストアンサー if [ "$PS1" ]の意味を教えてください。 2006/08/16 14:51 /etc/bashrcをみていたのですが if [ "$PS1" ]のところが引っかかりました。 これは$PS1になにもはいっていなければ真ということでしょうか? みんなの回答 (2) 専門家の回答 質問者が選んだベストアンサー ベストアンサー Lean ベストアンサー率72% (435/603) 2006/08/16 16:13 回答No.2 $ man bash を実行して「条件式」の所を読めば分かりますが、 -------8<-------8<-------8<-------8<-------8<------- 条件式 条 件式は複合コマンド [[ と組み込みコマンドの test および [ によって使用でき、ファイルの属 性を調べたり、文字列比較や算術式比較を行ったりできます。 <途中、省略> string string の長さが 0 でなければ真となります。 -------8<-------8<-------8<-------8<-------8<------- とあるようにシェル変数PS1の長さが0でない場合、つまり何か設定されている場合に真という事です。 ちなみに >if [ "$PS1" ] ですが、対話的にシェルを使用する場合には、シェル変数PS1は設定されていますが、シェルスクリプトとして実行される時にはシェルではシェル変数PS1は設定されません。 なので起動されたシェルが対話的に使用されるのかシェルスクリプトのように対話的に使用されないかを判断する事が出来ます。 シェル変数は、 $ set とすると設定内容が表示されますが、これをシェルスクリプト内で実行するとシェル変数PS1が設定されていない事がわかります。 質問者 お礼 2006/08/16 17:14 詳しくありがとうございます。大変参考になりました。^^ 広告を見て全文表示する ログインすると、全ての回答が全文表示されます。 通報する ありがとう 0 その他の回答 (1) agharta ベストアンサー率52% (54/103) 2006/08/16 15:37 回答No.1 恐らく、逆だと思います。 変数$PS1に何かしら入っていれば真ということでしょう。 質問者 お礼 2006/08/16 17:15 ありがとうございました。^^ 広告を見て全文表示する ログインすると、全ての回答が全文表示されます。 通報する ありがとう 0 カテゴリ [技術者向] コンピューターOS(技術者向け)Linux系OS 関連するQ&A .bash_profileの内容について Fedoraを使っています。環境設定ファイル.bash_profileで、 if [ -f /etc/bashrc ]; then . /etc/bashrc fi とありますが、これは、/etc/bashrcがあればそれを実行しなさいということはわかりますが、/etc/bashrcの前に記述されている、「.」は何を意味しているのでしょうか。カレントディレクトリにあればという意味なら、./bashrcと推測するのですが rcの意味 /etc/bashrcとか /etc/X11/xinit/xinitrc などのスクリプトの最後につく「rc」はrecursivelyの略と考えていいでしょうか。 PS版・真・女神転生ifアキラ編のBGMに付いて PS版・真・女神転生ifアキラ編のBGMに付いて質問です BGMがカッコイイので、PS版のアキラ編のBGMが収録されたサントラを探しています、 サントラもたくさんあるのでどれを買えば良いのか解りません もし、収録されていたら、タイトルを教えて頂けるとありがたいです 無い場合、ifのサントラみたいなのはありますか? ネットワークエンジニアとは?技術職の未来を考える OKWAVE コラム 条件付きコンパイル: #IF 1 Then と #IF 0 Then 条件付コンパイルで、 『#If 1 Then』と『#If 0 Then』の条件の違いを教えてください。 『#If ○○○=1 Then』などの場合はわかるのですが、 単に『#If 1 Then』の場合は何をもって真となるのでしょうか? よろしくお願いいたします。 linuxでaliasをbashrcに記載してsh linuxでaliasをbashrc(bashrcでなくともログイン時に読み込まれるprofile)に記載してあるコマンドを設定したいのですが、これが上手くいきません。 やりたいことは、bashrcで設定したコマンド内容をshスクリプトで実行したいのですが、これはどうやれば出来るのでしょうか? 以下に.bashrcの内容とshスクリプトの内容を記載します。 .bashrcの内容 # .bashrc # Source global definitions if [ -f /etc/bashrc ]; then . /etc/bashrc fi alias log='tail -f /var/log/messages' test01.shの内容 #! /bin/bash log 実行すると ./test01.sh: line 2: log: command not found となってしまいます。 ちなみに、shの中ではなく、ログイン後にコマンド(log)だけプロンプトに打つとちゃんとtail -f /var/log/messagesの内容が出力されます。 shの作りが悪いのでしょうか? どなたかご教授いただけますとありがたいです。 osはlinux redhat5.4です。 どうぞよろしくお願いいたします。 bashのcatの意味 bash勉強中の者です。 Mac起動時に.bashrcを読みこませる際に以下のコードを.bash_profileに書くと思います。 【.bash_profile】 --------------------------------- cat ~/.bash_profile if [ -f ~/.bashrc ] ; then . ~/.bashrc fi --------------------------------- この1行目のcat ~/.bash_profileの意味がよくわかりません。 cat自体はファイルの連結、または、ファイルの中身の展開という認識でいます。 この1行がなくても動きそうな気がしていますが、この行は必要なのでしょうか。 よろしくお願いいたします。 IF関数の計算式について教えてください 以下の式の場合、「真の場合」として扱われません。 [条件] セルA1=0.9 セルA2=0.9(=0.6+0.3で入力) [計算式] =IF(A1-A2>=0,"真","偽") 通常の計算であれば「0」となるため、「真」が返るはずなのですが 「偽」が返ってしまいます。 「真」が返る方法ありますか? ".bashrc" E509: バックアップファイルを作れません (! を追加で強制作成) fedora core1 でpostgreSQLをインストール中です。 # .bashrc # User specific aliases and functions # Source global definitions if [ -f /etc/bashrc ]; then . /etc/bashrc fi に、 export PATH=$PATH:/usr/local/pgsql/bin export MANPATH=$MANPATH:/usr/local/pgsql/man export POSTGRES_HOME=/usr/local/pgsql export PGLIB=$POSTGRES_HOME/lib export PGDATA=/home/postgres/data を追加して :wq すると ".bashrc" E509: バックアップファイルを作れません (! を追加で強制作成)というエラーが出ます。 どうしたらいいかわかりません。 phpでif文に指定されている条件の意味について あるプログラムの中に以下のような処理があったんですが意味がわかりません。 if(true || isset($val)){ 処理 } 上記の場合いずれかが真ならif文の処理を行うということになると思うのですが $valの状態がどうであろうが一つ目の条件に「true」が入ってる時点で必ずブロック内の処理を行うと考えていいのでしょうか? PS2で面白かったソフト! グラフィック重視のPS3に飽きてしまったので、近日、古き良きPS2を購入しようと考えています。 そこでですが、PS2で特に面白かったオススメのソフトがあれば教えて下さい(^ω^) 複数でも構いません★よろしくお願いします。 ※因みに私は『真・三國無双4』が一番好きでしたね♪ IF関数について D10=買なら L10=k10*100 D10=売なら L10=k10*1000 といった数式をIF関数で作ったのですが、 真の場合k10*100が#VALUE!になります。 宜しくお願いします。 ちなみに数式は↓です。 L10セルに =IF(D10="買",K10*100,IF(D10="売",K10*1000,"")) #ifの意味 こんにちは。今コードの解析をしているのですが、 #If ●● Then 処理内容 #Else 処理内容 #End If というようなコードがあるんですけど、#ってなんの意味があるのでしょうか? おわかりなる方がいらっしゃいましたら教えてください。 宜しくお願い致します。 AIは使う人の年齢や市場にも影響する?人工知能の可能性 OKWAVE コラム IF文 教えて下さい。 例 if (($in{'pre'} ne "0") && ($in{'pre'} ne "-1")) { 不要なoptin valueを 0と-1。必要が1-47。 value="1" から value="47" までを真にしたいのですが 例を簡単にするには [1-47] 1< とかどう書けば良いのでしょう?・・・ -------------------------------------------- if ($in{'nam'} && $in{'tel'} && ($in{'pre'} ne "0") && ($in{'pre'} ne "-1") && $in{'add'}) { 今はこんな感じでやってるのです・・・ 全部揃ったら真って感じです。条件文が毎回長くなってw(≧m≦)w IF関数について 似たような質問が探せませんでしたので、取り合えず教えてください!! 例えばKの列に出た結果が、 0であれば、空白、1>であれば増産、1<であれば減産 というIF 関数を入れたいのですが、真と偽の2種では 3つの結果を入れられず、困っています。 どういう数式にすればいいのでしょうか?? IF関数が理解できませんでした。 セル【G6】の数式を、「上記目標」が空白の場合は、「達成率」に空白を表示するように変更して下さい。 という問題があり、答えが =IF(E6=″ ″,″ ″,F6/E6) です。 しかし、表に空白の部分はありませんし、テキストにはIF関数の説明項目において、 =IF(論理式、真の場合、偽の場合) とあります。 IF関数の論理式内では真や偽の場合を示すのは「″ ″」部分ですよね。 ですが、真の場合も、偽の場合も空白で、答えは問題のどこを指してるのか、 最後にF6/E6がつく意味も全くわかりませんでした。 表には空白がないのに問題自体もどのように捉えたらよいのかもわかりません。 よろしくお願いします。 ifについて 今日始めた初心者です。 変数Aと変数Bが真のときAを出力したいのですが、 下記のように書いた場合、(自分の中では)偽のはずなのにAが出力されてしまいます。 なぜでしょうか。 $A = abc; $B = abcd; if ($A == $B){ print "$A" ; } =IF((L75>1.9)*AND(L75<=2),1,0)の*はないといけないのでしょうか? L75が1.91のとき、L75が1.9以上かつ2以下のとき、真なら1を、偽なら0を出す式を書きました。 =IF((L75>1.9)AND(L75<=2),1,0) こう入力するとエラーが出て*をつけるよう聞いてきます。 すなわち、エクセルの修正後は =IF((L75>1.9)*AND(L75<=2),1,0) 結果は1(真)になりました。 というものです。 ところで、*は必要ですか?ないといけないのでしょうか? そして、*があっても同じ結果となるのでしょうか? *は掛け算しかわからず、よろしくお願いします。 PS3のシェア率ってどのくらいなのでしょうか 少し前、真・三國無双5がリニューアルしてPS2でお目見えしましたが、PS3の売り上げがあまり良くないのかな、と思わされました。 まぁ、真・三國無双5に関しては個人的にゲーム内容にも問題があったような気がしますが・・・・・・。 鉄拳6とか白騎士物語とか面白そうなゲームが続々出るので買いたいなぁ、と思ってるのですが売れてるのでしょうか。 現在の事情をご存知の方がいましたら、是非とも教えて頂きたいのですが。 宜しくお願い致します。 エクセルのIF関数について教えてください。 こんばんは。 IF関数とは、 =IF(論理式、真の場合、偽の場合) なんですよね? エクセル初級の問題で、 参加者数に中止と入力されている場合は「0」 参加者数が入力されている場合は「ツアー代金 ×参加者数」を計算するように数式を修正しなさい という問題があるのですが、 =IF(参加者数が入っているセル番地(例:D13)=”中止”,0,ツアー代金(例:C13)*参加者数(例:D13)) つまり、 =IF(D13=”中止”,0,C13*D13) が回答になっています。 データの表を実際に入れてないので わかりづらくてすみません。 しかし、 =IFのあと、 =IF(D13=”中止”,0, と入力したら、真の場合と負の場合って 何をさすのですか? 論理式自体が中止の場合0と入力するように するのですか? それともこれが真の場合で、 参加者数が入力されている場合が負の場合なのですか? 教えてください! IF関数 Window98を使用しております。エクセルに関してですが、基本的な事ですいません。IF関数で、条件が3つある場合、例えば100000以上が達成、80000以上が努力、80000未満が検討という場合関数を使用して最初の論理式の所で、>=100000と入力しまして、その後、真の場合の所で、達成と入力、そして、最後の偽の所で、もう一度IFを使用したのですが、それを押すと・+if(if()となってしまい。また一旦閉じて計算式の所で、IFを押したら+ifとなって、余分な+がついてしまいました。設定方法が悪いのか?入力の仕方が悪いのか?どうすればいいのか教えてください。 注目のQ&A 「You」や「I」が入った曲といえば? Part2 結婚について考えていない大学生の彼氏について 関東の方に聞きたいです 大阪万博について 駅の清涼飲料水自販機 不倫の慰謝料の請求について 新型コロナウイルスがもたらした功績について教えて 旧姓を使う理由。 回復メディアの保存方法 好きな人を諦める方法 小諸市(長野県)在住でスキーやスノボをする方の用具 カテゴリ [技術者向] コンピューター OS(技術者向け) Windows系OSLinux系OSBSD系OSSolaris系OSiOS(技術者向け)Android OS(技術者向け)その他(OS) カテゴリ一覧を見る OKWAVE コラム 突然のトラブル?プリンター・メール・LINE編 携帯料金を賢く見直す!格安SIMと端末選びのポイントは? 友達って必要?友情って何だろう 大震災時の現実とは?私たちができる備え 「結婚相談所は恥ずかしい」は時代遅れ!負け組の誤解と出会いの掴み方 あなたにピッタリな商品が見つかる! OKWAVE セレクト コスメ化粧品 化粧水・クレンジングなど 健康食品・サプリ コンブチャなど バス用品 入浴剤・アミノ酸シャンプーなど スマホアプリ マッチングアプリなど ヘアケア 白髪染めヘアカラーなど インターネット回線 プロバイダ、光回線など
お礼
詳しくありがとうございます。大変参考になりました。^^