• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:超初歩的質問で恐縮ですが、シェルの環境変数)

シェルの環境変数に関する超初歩的な質問

hoge1229の回答

  • hoge1229
  • ベストアンサー率29% (58/194)
回答No.1

HOME=/New; echo "My Home is $HOME" シェルの区切りは空白じゃなくてセミコロンか改行ですよ。

noname#225432
質問者

お礼

ありがとうございます。と言うことは、3行目の HOME=/New は、文法間違いという理由で、/Newが代入されなかったという理解で良いのですか?例文がおかしかっただけなのでしょうか。

関連するQ&A

  • 空白を含んだシェル変数の代入

    こんにちは。 空白を含んだシェル変数の代入について教えてください。 set test1="ABCD EFGHIJ" set w1=$test1 echo "w1 = $w1" このようなシェルスクリプトを実行させた時 w1 = ABCD と表示されてしまいます。 解決案があれば教えてください。 よろしくお願いします。

  • Linuxでの質問。(echoコマンドなど)

    Linuxでの質問。 1.echoコマンドで* $home=' home ' (ただし home はシェル変数homeの値)と表示したい。echoコマンドにどのようは引数を渡せばよいのでしょうか。 実行例 % echo 適切な引数 * $home='/home/gbu/myname' 答えは echo \* "\home="\'$home\' でよろしいですか。 echo \* '$home='\'$home\' と入力しても同じ結果が出るのですが、どっちでいいでしょうか。 2.次の2つのコマンドラインは実行結果が異なる。その違いが生じる理由は何でしょうか。 % cd ; (cd / ; pwd) ; pwd % cd ; cd / ; pwd ; pwd まったく初心者です。manコマンドを使って調べたのですが。。 man () って入力しても、何にも出なくて、ぜひ教えてください。お願いします。 3.演習課題にならって、 エイリアスが子プロセスのシェル(サブシェル)に引き継がれるかどうかを確かめる手順の例を示しなさい。っていう課題が出ました。どういうふうにやればいいでしょうか。教えてください。 演習課題 シェル変数と環境変数の違いの確認 % set foo=1 シェル変数fooに値を設定する。 % setenv FOO 1 環境変数FOOに値を設定する。 % echo $foo シェル変数fooの値を表示する。 % echo $FOO 環境変数FOOの値を表示する。 % tcsh 子プロセスとしてシェルを起動する。 (ここから、子プロセスのシェル上での操作) % echo $foo シェル変数fooの値の表示を試みる。(引き継がれていない。) % echo $FOO 環境変数FOOの値を表示する。(引き継がれている。) % set foo=2 シェル変数fooに値を設定する。 % setenv FOO 2 環境変数FOOに値を設定する。 % exit 子プロセスとしてシェルを起動したシェルを終了する。 (ここまで、子プロセスのシェル上での操作) % echo $foo シェル変数fooの値を表示する。(子プロセスでの変更は影響しない。) % echo $FOO 環境変数FOOの値を表示する。(子プロセスでの変更は影響しない。) エイリアスの意味を調べたのですが、「コマンドを別名で登録したもの」と解釈されていて、これはどういうことなんでしょうか。 この問題の意味は、課題にならって set alias=1 と設定して、次は setenv ALIAS 1 そして、課題のように、fooのとこをalias、FOOのとこをALIASと変えて、最後echo $ALIAS を調べればいいのですか。 学校の宿題ですが、やってもぜんぜん意味不明なので、助けてください。

  • シェル(ksh)で変数にある文字列を取り出す

    お世話になります。 シェルで変数(例えば:OUT)に入っている文字列ついて2つ質問させてください。 1:変数に入っている文字列を後ろから何文字(固定長)取り出したい場合にどのようすればよいか教えてください。 試してみたのは以下です。 OUT1=abcde #変数OUT1に文字列abcdeを代入 OUT=${OUT1:3:(-1)} (固定長3バイト後ろから取り出したい(cde)) をファイルに書きこんで起動すると、上記の処理にいったところで、"置換が正しくありません"とでてしまいます。 2:変数に入っている文字列の文字数を取り出したい。 試してみたのは以下です。 OUT1=abcdec #変数OUT1に文字列abcdeを代入 OUT=${#OUT} これは、コマンドラインでecho ${#OUT}とすると6と文字数を表示してくれますが、ファイルに書きこんで起動すると上記同様"置換が正しくありません"と表示されてしまいます。 OSは、SUN OS 5.8です。 わかるかたがいらっしゃたら教えてください。 宜しくお願いします。

  • コマンドの戻り値を変数に代入したい

    初歩的な質問で失礼します。 echo "aiueo" > 変数 というようなことをやりたいのですが、できますでしょうか? 具体的には、ftpコマンドのメッセージを 変数に代入したいなと思っています。 echo "(略)" | ftp -n > 変数

  • シェルスクリプトで環境変数が読めない

    Javaアプリケーションサーバー構築(Tomcat5) - CentOSで自宅サーバー構築: http://centossrv.com/tomcat5.shtml 上記のサイトでtomcatのインストールをしていて tomcat起動スクリプトを書き、 /etc/rc.d/init.d/tomcat start だとtomcatは正常に起動するのですが、 service tomcat start で起動すると Starting tomcat Neither the JAVA_HOME nor the JRE_HOME environment variable is defined At least one of these environment variable is needed to run this program というメッセージが表示されて、起動に失敗します スクリプト内で環境変数が読めていないように見えるのですが、 原因が分かりません。教えてください OSはCentOS 5.3です

  • fedora10 環境変数が無効に・・・・・

    fedora10にoracle10gをインストールしたのですが、ORACLE_HOMEなどの環境変数を設定したのですが再起動すると環境変数が初期化されてしまいます。 fedoraの端末で行ったこと。 一般ユーザからoracleユーザーに切り替えました。 そのあとに,ORACLE_SID=/xxxx/yyyと入力しexport ORACLE_HOMEを実行し 確認でecho $ORACLE_HOMEを実行し/xxxx/yyyが表示します。 そこで、端末を一度閉じ再度起動しoracleユーザーに切り替えてecho $ORACLE_HOMEを実行すると/xxxx/yyyが表示されず、何も表示されなくなってしまいました。  ご教示いただければと思います。 環境 fedora10 32ビット HDD 70G CPU Core(TM)2 CPU E8500 メモリ 4G

  • ある変数の内容を編集して他の変数に代入する方法

    Perl で、例えば $old に "123ABCDE456" という値が入っているとします。 これを、"ABCDE" を削除して $new に入れたいのですが、私はいつも   $new = $old;   $new =~ s/ABCDE//; のようにやっています。これで、確かに目的の結果にはなるのですが… こういう操作を、1行の文で書ける方法はないでしょうか? よろしくお願いします。 (但し、$new = $old, $new =~ s/ABCDE//; で1行だよ、というのは当然除きます^^)

    • ベストアンサー
    • Perl
  • ()を使ったサブシェルの起動について

    ()を使ってサブシェル(?)を起動する下記スクリプトを実行してみました。 #!/bin/bash echo "${SHELL}:${SHLVL}: $$, ${PPID}: $(pwd)" ( cd /tmp echo "${SHELL}:${SHLVL}: $$, ${PPID}: $(pwd)" ) echo "${SHELL}:${SHLVL}: $$, ${PPID}: $(pwd)" [実行結果例(Linux Mint 17 Mate)] /bin/bash:2: 31782, 31634: /home/taro/tmp /bin/bash:2: 31782, 31634: /tmp /bin/bash:2: 31782, 31634: /home/taro/tmp てっきりサブシェルの出力結果は次のようになるとばかり思っていました。 * SHLVL環境変数の値が起動前の値よりも 1 大きくなる。 * 呼び出し元から新たに生成されたプロセスでサブシェルが実行される。 しかし、起動されたサブシェルのプロセスIDは呼び出し元と同じです。 () の中の処理はどのように実行されているのでしょうか?

  • シェル変数の有効範囲に関して質問させて下さい。

    シェル変数の有効範囲に関して質問させて下さい。 while文にて代入した変数を、その後も使用したいと考えております。 以下、試してみた内容です。 ---------------------- # cat /WORK/test_clice sda sda1 sda2 sda3 sda4 sda5 sda6 sda7 sda8 sdb # declare -a clice # declare -i count # cat /WORK/test_clice | while read LINE; do count=`expr $count + 1`; clice[${count}]=${LINE}; echo ${clice[${count}]} ; done sda sda1 sda2 sda3 sda4 sda5 sda6 sda7 sda8 sdb # echo ${clice[1]} # ---------------------- 有効範囲の為、引き継がれていないのかな?と考えております。 試しに、「set」や「export」を使用してみたのですが、旨く行きませんでした。 ※使い方が悪い? 基本的な内容となり恐縮ではございますが、知恵をお借りできませんでしょうか。 よろしくお願い致します。

  • 環境変数設定で

    senの環境変数を設定する場合、マイコンピュータを右クリックして、環境変数選択して、SEN_HOMEをつくり、 そこにC:\sen-1.2.2.1としました。 次にpathに%SEN_HOME%\binとしました。  そしてコマンドプロントでsh sen.shとしても'sh' は、「内部コマンドまたは外部コマンド、操作可能なプログラムまたはバッチファイルとして認識されていません。」とエラーがでます。  antは同じ要領でできたのですが・・・

    • ベストアンサー
    • Java