- 締切済み
bashで変数に追記
- みんなの回答 (3)
- 専門家の回答
みんなの回答
- qaaq
- ベストアンサー率36% (146/404)
bash-2.05b$ a=abc bash-2.05b$ b=ABC bash-2.05b$ c=$(echo -n "$a" ;echo ;echo -n "$b") bash-2.05b$ echo "$c" abc ABC bash-2.05b$ echo -n "$c" | od -t x1 -a 0000000 61 62 63 0a 41 42 43 a b c nl A B C abc<改行>ABCになっているのがわかると思います。 # 何使いたいのか、私にもイマイチ理解できませんが・・・・
- Tacosan
- ベストアンサー率23% (3656/15482)
う~ん, どんな状況なんでしょうか? 何を目的として「変数に, 改行を含めて追加したい」と考えているのか理解できないんですけど.... 一応, 配列を使えば (#1 との合わせ技で) 処理できるかもしれませんが, 「何をしたいのか」を明らかにしてもらった方が考えやすいです.
- Ceren
- ベストアンサー率49% (90/183)
たとえば VAR=AA VAR="${VAR} BB" VAR="${VAR} CC" のようにVARに値を"スペース区切りで"追加していき、 最後に for v in ${VAR};do echo ${v} done のようにfor文で順番に出力するのではダメなのですか?
関連するQ&A
- bashで配列の個数部分を変数で指定するとエラーに
bashで配列の個数部分を変数で指定するとエラーになってしまいます。 #!/bin/bash aa[0]="a0" aa[1]="a1" aa[2]="a2" bb[0]="b0" bb[1]="b1" bb[2]="b2" bb[3]="b3" cc[0]="c0" cc[1]="c1" cc[2]="c2" cc[3]="c3" cc[4]="c4" list=(aa bb cc) for i in ${list[@]} do eval echo "$i=\${#$i[*]}" n="\${#$i[*]}" mes="\${$i[$(( ${RANDOM} * 3 / 32768 ))]}" eval echo "$mes \${$i[$(( ${RANDOM} * 3 / 32768 ))]}" done $ . list-test.sh aa=3 a1 a2 bb=4 b2 b2 cc=5 c0 c2 上記の下記箇所の「各配列の個数部分の3」をイメージ的には変数で指定したいです。 mes="\${$i[$(( ${RANDOM} * 3 / 32768 ))]}" ↓ mes="\${$i[$(( ${RANDOM} * $n / 32768 ))]}" $nのように指定すると、下記のエラーになってしまいます。 >bash: 29205 * ${#aa[*]} / 32768 : 構文エラー: オペランドが予期されます (エラーのあるトークンは "${#aa[*]} / 32768 ") ${n}や\$nや($n)など色々試してみたのですが、解決できませんでした。 恥ずかしながら、どなた様かご教授ねがえませんでしょうか
- ベストアンサー
- その他(プログラミング・開発)
- 変数に改行を含む文字列を代入
変数に改行を含む文字列を代入したいです。 具体的には echo $KAIGYO AA BB CC DD となるような $KAIGYOを作りたいです。 どのようにしたらよいでしょうか?
- ベストアンサー
- Linux系OS
- 変数$importfileに第1引数($1)のファイルPATHを表示したい
下記のスクリプトを書きましたが ./aa.sh: line 6: =/tmp: command not found と言われるのはなぜですか? 変数$importfileに第1引数($1)のファイルPATHを表示したいです。 1 #/bin/bash 2 3 echo $# 4 if [ $# -eq 1 ] 5 then 6 $importfile=$1 7 echo "$importfile" 8 else 9 echo "argv file notfound" 10 exit; 11 fi 12 実行結果 ./aa.sh /tmp 1 ./aa.sh: line 6: =/tmp: command not found
- ベストアンサー
- Linux系OS
- bashで出力を変数に格納したい。
初歩的な質問で申し訳ありません。 bashで、あるプログラムの出力の一部を変数に格納したいのですが、どのようにすればよいのでしょうか? 例えば、 >>./test.exe this is a pen. という実行ファイルがあるときに。 isのみを、変数 a に格納する。と言ったものです。 >>echo ${a} is
- ベストアンサー
- その他(プログラミング・開発)
- bashで変数中の改行はどのように表現するの?
複数のファイルが置かれたディレクトリで(bashで) $ ls > file.txt $ mapfile ary < file.txt とすると、各ファイル名を要素とする配列が変数aryに入ります。 この時、各配列要素にはファイル名だけでなく、file.txtの各行の改行コードが含まれます。 (参考 http://emasaka.blog65.fc2.com/blog-entry-560.html ) この配列要素から改行コードを取り除くべく for LINELF in "${ary[@]}" do LINE=${LINELF%\n} done; としても改行コードを取り除けません。 for LINELF in "${ary[@]}" do LINE=${LINELF%?} done; とすれば取り除けるので実害はないのですが、変数の値の中の改行コードはどのように表現するのでしょうか? 2011年5月12日
- ベストアンサー
- Linux系OS
- DOSバッチで変数の値を変数名に設定したいのですが、可能でしょうか?
DOSバッチで変数の値を変数名に設定したいのですが、可能でしょうか? 例として、以下のようにVARという変数に対して、ある文字列を設定し、その文字列の名前の変数の値を別の変数に代入したいのです。 set VAR="TMP" if /i "%VAR%"=="TMP" (SET TEST=%%VAR%%) echo %TEST% ここで求めている挙動は、SET TEST=%%VAR%%の命令によって SET TEST=%TMP% → SET TEST=C:\Windows\Temp のように展開されればいいのですが、実際はSET TEST=%VAR%となってしまいます。 なにか良い方法がないでしょうか?
- ベストアンサー
- その他(プログラミング・開発)
- 配列の値を可変変数を用いて取得する方法について
配列の値を可変変数を用いて取得する方法について 下記のようなソースがあるのですが、$tmp1_1zのような変数の場合、可変変数を用い取得する事は出来たのですが、$hairetsu["tmp2_1z"]のような配列の場合、可変変数を用い取得する事は出来ませんでした。 どちらの例の場合も、$varの中には意図した文字が取得できていると思うのですが、$$varの結果が異なり、どのように記述すれば配列の場合も可変変数の値が取得できるか分からなかった為、アドバイスいただける方がいらっしゃいましたら、ご教示の程よろしくお願いします。 【ソース】 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja" lang="ja"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>title</title> </head> <body> <?php $tmp1_1z = 1; $hairetsu["tmp2_1z"] = 2; $i = 1; $var = 'tmp1_' . $i . 'z'; echo "<p>var=" . $var . "</p>"; echo $tmp1_1z; // 下記は値が取得できます。 echo "<p>\$var=" . $$var . "</p>"; $var = 'hairetsu["tmp2_' . $i . 'z"]'; echo "<p>var=" . $var . "</p>"; echo $hairetsu["tmp2_1z"]; // 下記は値が取得できません。 echo "<p>\$var=" . $$var . "</p>"; ?> </body> </html> 以上、よろしくお願いします。
- ベストアンサー
- PHP
- bash ファイルなし判定
現在bash scriptにおいてファイル存在判定を下記のように しています。 if [ -s "tmp.txt" ]; then (dummy=1) else echo " no [tmp.txt] file" exit fi -sでファイルがある場合のelseとしていています。 if文で直接ファイルが"ない"という判定はどのように 記載するのでしょうか?
- ベストアンサー
- Linux系OS
- 【シェルスクリプト】 ローカル変数、グローバル変数
シェルスクリプトのローカル変数、グローバル変数の取り扱いで迷っています。 ---------------- #!/bin/bash count=0 cat file | while read i do count=`expre $count + 1 ` done echo $count ---------------- fileの中身をcatで流して、それを一行ずつ読み込みます。 そのつど、count の値を増やしていくようにしたいのですが、最後の出力値は0となります。 cat→whileで読み込ませて処理している間はローカル変数として扱われているのでしょうか。 またそうであるならば、シェルスクリプトでグローバル変数を明示的に宣言するにはどうのようにすればいいのでしょうか。
- ベストアンサー
- その他(プログラミング・開発)