トップページunix
1001コメント297KB

シェルスクリプト総合 その22

■ このスレッドは過去ログ倉庫に格納されています
0001名無しさん@お腹いっぱい。2013/11/01(金) 07:58:50.52
シェルスクリプトの総合スレです。
□お約束
・特記なき場合はBourne Shell(/bin/sh)がデフォルトです。
 bash/zsh/ksh/ashなどに依存する場合は明示しましょう。
 Linuxユーザは/bin/shの正体がbashまたはdashなので特に注意。
 FreeBSDユーザは/bin/shの正体がashなので注意。
 v7 shに一番近くて、現役のshは、OpenSolaris由来のheirloom sh。
  http://src.opensolaris.org/source/xref/onnv/onnv-gate/usr/src/cmd/sh/
  http://heirloom.sourceforge.net/sh.html
・csh/tcshのシェルスクリプトは推奨されません。
 (理由は「csh-whynot」でググれ)
・UNIXにはシェルスクリプトに便利な小さなコマンドがいろいろあります。
 manや参考リンクを見ましょう。
 aproposないしはman -kでそれらしい単語による簡単な検索もできます。
・シェルで使えるワイルドカード等は正規表現ではありません。
 正規表現の話題はスレ違い(正規表現スレへ)
・シェルスクリプトのことをシェルってゆーな
□初心者へのアドバイス:
・適した道具を判断するのも頭の重要な使い方。シェルスクリプトよりも
 awkまたはperlの方が適した処理にはそちらを使いましょう。
・知らないコマンドが出てきたらmanを引きましょう。
・思い通りに動かないときは、まずは sh -x でトレースしましょう。
□回答者への注意事項:
・シェルスクリプトでの処理方法を質問しているのに、よくわからずに
 「そういうのはperl使いましょう」と回答するのはやめましょう。
 安易にperlに逃げずにシェルスクリプトで処理するのが頭のいいやり方。
前スレ
シェルスクリプト総合 その21
http://toro.2ch.net/test/read.cgi/unix/1352973453/
0042342013/11/22(金) 00:08:55.90
おいおい条件要らないとかマジかよ
意外とスクリプト面白いな
0043名無しさん@お腹いっぱい。2013/11/22(金) 00:09:42.94
条件要らない?
どういうこと?
0044名無しさん@お腹いっぱい。2013/11/22(金) 01:55:31.53
ifが変数に入れなくてもそのまま戻り値でいけるってとこじゃね?
0045名無しさん@お腹いっぱい。2013/11/22(金) 08:48:23.24
ifに条件は要るだろ。
0046名無しさん@お腹いっぱい。2013/11/22(金) 09:22:12.61
ping -c 3 192.168.43.1 >/dev/null && { ping -c 1 192.168.254.100 >/dev/null && echo Status=OK || { /etc/script/wol 192.168.254.255 10:78:D2:4B:D6:55; echo WAKE-ON-LAN; }; } || echo NoThanks
0047名無しさん@お腹いっぱい。2013/11/22(金) 22:29:53.59
if使わない方法もあるのね。なかなか勉強になるぜ
>>43 [ ${PING1} -eq "0" ];これってpingの変数が0だったらって条件じゃないの?
1とか他の値だったら条件に合わないよね?
でも>>41のを見るとそんな条件なく成功=次へって感じに見えるけど
何処に条件が書いてあるん?
分かり易く教えてくだしあ
0048名無しさん@お腹いっぱい。2013/11/22(金) 22:46:39.23
if は、条件がどうこうじゃなく、コマンドの戻り値で判断する文法。
[ ... ] の [ は、ifの文法じゃなくて [ という名前のコマンド。
0049名無しさん@お腹いっぱい。2013/11/23(土) 00:18:20.98
testコマンドじゃなかったか? => []
0050名無しさん@お腹いっぱい。2013/11/23(土) 00:33:47.23
test と [ は同じ物。
コピーかリンク。
] は関係ない。
0051名無しさん@お腹いっぱい。2013/11/23(土) 00:41:18.75
test を [ という名前で起動するときは、
最後に ] という引数を要求するようになっている、という仕組み。
0052名無しさん@お腹いっぱい。2013/11/23(土) 01:22:07.55
ping文が条件じゃん。
0053名無しさん@お腹いっぱい。2013/11/23(土) 19:24:30.28
f=
if [ -f "$f" ]; then
echo "ファイル$fはある"
else
echo "ファイル$fはない"
fi

を実行すると、
ファイルはない

f=
if [ -f $f ]; then
echo "ファイル$fはある"
else
echo "ファイル$fはない"
fi

を実行すると、
ファイルはある

"$f" でないと「ある」になるんですが、
そんなファイルはないのに、なぜなんでしょう?
0054名無しさん@お腹いっぱい。2013/11/23(土) 19:33:31.33
[ -f $f ] は [ -f ] と同じ意味になって、
[ コマンドがそれを真とみなすから。
0055名無しさん@お腹いっぱい。2013/11/23(土) 19:34:30.39
[ -f "" ] && echo hoge

[ -f ] && echo hoge
ってことだな。

>>54
なぜ真とみなされるのか、という疑問では。
0056名無しさん@お腹いっぱい。2013/11/23(土) 19:39:50.36
-f が単なる文字列として解釈されているのでは

`-n STRING'
`STRING'
True if the length of STRING is nonzero.
0057名無しさん@お腹いっぱい。2013/11/23(土) 19:39:51.89
マニュアルには -f file の場合しかないんで、-f だけだと未定義。
ということは、真になろうが偽になろうが利用者は文句を言えない。
最初の実装上たまたま真にしたんじゃね?
で、その実装がそのまま引き継がれていると。

以上、想像。
0058名無しさん@お腹いっぱい。2013/11/23(土) 19:41:30.39
>>56
あぁ、それが合理的だな
0059532013/11/23(土) 19:57:40.35
さすがこのスレは物知りが多いですね

$ test hoge
$ echo $?
0

だから

$ test -f
$ echo $?
0

も同じってことですか なるほど
しかし、わかりにくいってか間違いやすいなー
0060名無しさん@お腹いっぱい。2013/11/23(土) 21:04:08.90
>>57
ああ、なるほど。鼻から悪魔が出てくるアレと同じ構図なのか。
0061名無しさん@お腹いっぱい。2013/11/23(土) 22:44:39.50
>>56
おまえあたまいいな
0062名無しさん@お腹いっぱい。2013/11/25(月) 08:44:31.22
opencobolでプログラムを書いて、bashシェルで実行させています
その時、シェルでファイルを定義する必要があるんですが、
AAAAAA=./work/AAAAAA.txt ; export AAAAAA
echo AAAAAA=$AAAAAA

を複数書く必要があるんですが、
AAAAAAを何ヵ所も書き換えるのが大変です
皆さんならどう定義しますか?
0063名無しさん@お腹いっぱい。2013/11/25(月) 10:14:29.37
どういうこと?
0064名無しさん@お腹いっぱい。2013/11/25(月) 10:27:09.96
下のTEST001プログラムを実行するときに、IN1FILE,IN2FILE,OUT1FILEを定義する必要があります。
もっとわかりやすくて、書きやすい方法ないのかと思い、相談させてもらいました。

現在下のような感じです。
IN1FILEを定義するのに何箇所もIN1FILEとコピペするのが面倒で・・・

Pname=TEST001
echo $Pname START

IN1FILE=${mastpass}IN1FILE.txt ;export IN1FILE
IN2FILE=${mastpass}IN2FILE.txt ;export IN2FILE
OUT1FILE=${mastpass}OUT1FILE.txt ;export OUT1FILE
echo "IN1FILE " $IN1FILE
echo "IN2FILE " $IN2FILE
echo "OUT1FILE " $OUT1FILE

./LINUX/bin/$Pname.bin
ReturnCD=$?
if [ $ReturnCD -eq 0 ] ; then
echo $Pname "NOMAL END (" $ReturnCD ")"
else
echo $Pname "ABNOMAL END !!!!! (" $ReturnCD ")"
exit 1
fi
echo " "
0065名無しさん@お腹いっぱい。2013/11/25(月) 10:37:44.35
echo が必要なら書くしかないんじゃね。
bash 前提なら
export IN1FILE=${mastpass}IN1FILE.txt で済む。
0066名無しさん@お腹いっぱい。2013/11/25(月) 10:40:53.46
こんな感じで、一か所変更すれば良い様にしたいんですが、
いまいちshellがわかってなくて・・・

FIL=IN1FILE ; '$FIL=${mastpass}$FIL.txt ;export $FIL ;echo $FIL = $FIL
0067名無しさん@お腹いっぱい。2013/11/25(月) 10:47:59.24
eval使え
0068名無しさん@お腹いっぱい。2013/11/25(月) 10:51:08.10
>>65 ありがとございます
参考にいろいろやってみてます。
最後の'$'$FILの所がうまく行きませんでした。

FIL=KANFIL ; export $FIL=${mastpass}$FIL.isam ; echo $FIL = '$'$FIL
0069名無しさん@お腹いっぱい。2013/11/25(月) 10:53:18.96
>>67
かえってややこしくなりそう。
0070名無しさん@お腹いっぱい。2013/11/25(月) 10:57:21.15
↓で出来ました。ありがとうございます。
もっといい方法ありますか?

FIL=IN1FILE ; export $FIL=${mastpass}$FIL.txt ; eval echo $FIL = '$'$FIL

汎用機からマイグレをしようと思ってます。
JCLが出力しているような情報は出力させたいので、
echoは必要だと考えています。
0071名無しさん@お腹いっぱい。2013/11/25(月) 11:02:38.40
あと、プログラム終わった後、環境変数を解放してあげる必要があるかと思うんですが、
その場合は、配列にして、
@配列定義
A配列を使ってexport定義
Bプログラム実行
C配列を使ってunsetで解放
って感じが良いのでしょうか
0072名無しさん@お腹いっぱい。2013/11/25(月) 11:03:54.23
>>71
> あと、プログラム終わった後、環境変数を解放してあげる必要があるかと思うんですが、
そうなん?
0073名無しさん@お腹いっぱい。2013/11/25(月) 11:13:38.62
>>72
汎用機ばっかりだったので、
ファイルを使いたいときは定義、使い終わったら解放ってのが一般的だと思ってたので・・・

次のプログラムでは、定義してないファイルは使えない感じの方がいいのかと思ってますが、
そんな考え方は、必要ないのでしょうか?
0074名無しさん@お腹いっぱい。2013/11/25(月) 11:42:36.01
define_file()
{
local FIL=$1
eval "$FIL=${mastpass}$FIL.txt ;export $FIL ;echo $FIL = \$$FIL"
}

define_file IN1FILE
define_file IN2FILE
define_file OUT1FILE

環境変数はシェルスクリプトに閉じているからシェルスクリプトが終了すれば消えてなくなる
あとpassってなんだよ。pathの事か?
0075名無しさん@お腹いっぱい。2013/11/25(月) 11:43:45.62
パスワードのことじゃね?
0076名無しさん@お腹いっぱい。2013/11/25(月) 11:56:32.79
にゃんぱすー
0077642013/11/25(月) 12:01:10.93
>>74
pass=pathです

恥ずかしいから誰にも言わないで下さい
0078642013/11/25(月) 12:34:00.24
>>74さん
ありがとうございます。

理想的な感じです!!
define_fileを外部ファイル(外部シェル)とする事もできますか?

将来的には、ファイル名、属性、フォルダを渡したいと考えています
define_file IN1FILE mast txt
0079名無しさん@お腹いっぱい。2013/11/25(月) 13:46:12.01
> define_fileを外部ファイル(外部シェル)とする事もできますか?
そのシェルの中でevalしないとダメ
別ファイルに記述しといて ドットコマンドで定義を読み込むことは出来る
. define_file.inc
0080642013/11/25(月) 16:31:39.03
出来ました。みなさんありがとうございました。


論理ファイルと物理ファイルが違う場合が出てきたので、
結局JCLに似た形式にしました。

. ${shelpath}ASCFILE.inc #ファイルアロケート

ASCFILE IN1FILE ${mastpath}IN1FILE.sf
ASCFILE IN2FILE ${tranpath}tran.sf
ASCFILE OUT1FILE ${workpath}OUT1FILE.sf

ASCFILE()
{
local DDNAME=$1 #論理ファイル
local DSNAME=$2 #物理ファイル

export $DDNAME=${DSNAME}
eval echo $DDNAME = '$'$DDNAME
0081名無しさん@お腹いっぱい。2013/11/26(火) 00:50:42.83
なんつうか、COBOLはもともとの発想というか方法論が違うんだな…
0082名無しさん@お腹いっぱい。2013/12/04(水) 13:08:09.83
cshは関数作れなかったり、各種制御がお粗末だったり色々問題ありなので、shでスクリプトを書こうとしています。

しかし、一部の設定でcshの文法で書かれたファイルをsourceする必要があります。
(cshスクリプトファイルで設定される$pathや環境変数などの設定情報が必要)

shスクリプト内で単純にsourceするとファイルがshで解釈されてエラーになります。

どのようにすれば、shスクリプトでcshスクリプトファイルの設定を引き継げますでしょうか。
shに書き起こすのは無しで、ファイルそのものを使えるのが理想です。
0083名無しさん@お腹いっぱい。2013/12/04(水) 13:21:02.17
>>82
cshで読んで、子プロセスとして起動したshに環境変数として渡す。
前処理が必要ならsh→csh→shの入れ子にして動かす。
0084名無しさん@お腹いっぱい。2013/12/04(水) 14:05:38.91
すみませんがcshがインストールされていないLinuxの前提でお願いします
0085名無しさん@お腹いっぱい。2013/12/04(水) 14:14:56.23
既読スルー
0086名無しさん@お腹いっぱい。2013/12/04(水) 14:46:50.02
>>84
変数代入に相当する構文をgrepで抽出して解釈。
ifブロック内での変数操作を拾う点については諦める。

それも嫌ならcshを無理矢理でもいいから突っ込んで動かせ。
0087名無しさん@お腹いっぱい。2013/12/04(水) 14:50:40.08
csh2sh と名のつく変換スクリプトもいろいろあるようだよ。
0088名無しさん@お腹いっぱい。2013/12/04(水) 14:50:48.60
csh2shみたいのじゃだめなんかな。
0089名無しさん@お腹いっぱい。2013/12/04(水) 22:10:17.84
すみませんが若い女性の方のみお願いします。
0090名無しさん@お腹いっぱい。2013/12/11(水) 19:06:34.35
dashはうんこだと思う
0091名無しさん@お腹いっぱい。2013/12/11(水) 19:11:03.06
既読スルー
0092名無しさん@お腹いっぱい。2013/12/14(土) 05:11:38.01
若い女性がダッシュでウンコの動画マダー?
0093名無しさん@お腹いっぱい。2013/12/21(土) 10:57:05.23
Software Design 2014年1月号

シェル特集だぞ。

なんか、良いこと書いてる?
0094名無しさん@お腹いっぱい。2013/12/27(金) 13:24:08.23
冬休みにシエルを始めたいのですがどのアプリを入れればいいのかいっぱいあってわかりません。オーエスはアンドロイドです。よろしく教えてください。
0095名無しさん@お腹いっぱい。2013/12/27(金) 13:48:23.63
釣りにしか見えない
0096名無しさん@お腹いっぱい。2013/12/27(金) 14:02:56.75
>>94
http://developer.android.com/sdk/index.html
0097名無しさん@お腹いっぱい。2013/12/27(金) 15:10:37.86
すみませんがプレイのアプリでお願いします
0098名無しさん@お腹いっぱい。2013/12/27(金) 15:11:17.22
>>93
付録狙いで買ってくる
0099名無しさん@お腹いっぱい。2013/12/27(金) 15:17:46.67
https://play.google.com/store/apps/details?id=ua.in.android_wallpapers.shell
0100名無しさん@お腹いっぱい。2013/12/27(金) 15:38:28.36
>>99
ありがとうございます。いま環境がないので姉が帰ってきたら試してみます。
0101名無しさん@お腹いっぱい。2013/12/27(金) 17:31:10.29
urlくらいまじめに見ろよ
0102名無しさん@お腹いっぱい。2013/12/28(土) 13:09:48.31
釣りのような気もするがマジレスすると、ConnectBotでいいと思う。
こいつはsshクライアントなんだが、デフォルトだとプロトコルsshって
表示されてるとこでプロトコルlocalを選ぶと、Androidの
一般ユーザー権限でシェルが使えるので。
0103名無しさん@お腹いっぱい。2013/12/28(土) 13:10:20.83
釣りっていうかすべったネタ。
0104名無しさん@お腹いっぱい。2013/12/28(土) 13:22:08.91
Androidだとふつーにシェルが使えるから、釣り/ネタにならんのよね。
iOSならネタになるかな?
iOSの公式ストアにあるアプリで、ローカルのシェルが使える奴ってある?
0105名無しさん@お腹いっぱい。2013/12/28(土) 13:28:06.54
釣りにしか見えない
0106名無しさん@お腹いっぱい。2013/12/28(土) 13:50:33.34
まあデフォルトだとsedもawkも入ってないので、
だいぶ厳しい。(grepは入ってる)
でもシェルはkshで行編集やファイル名補完は効くぞ。
なぜかmoreがあるなあと思ったら、これksh組み込みの奴だったのね。
0107名無しさん@お腹いっぱい。2014/01/11(土) 12:07:28.33
標準入力(od -xが出力した文字列)の文字列を4バイトごと切り取り、
それをforループで処理させたい思っており、現在はこんな感じのスクリプト作ってます
OSはCentOS、シェルはbashです

#!/bin/sh
for STR in `4バイトごとに切り取る処理`
do
hogehoge $STR
done

この「4バイトごとに切り取る処理」ですが、現在はsplitで4バイト単位に切り取り、
分割後のファイルを順次読み込ませるということにしているのですが、
分割後のファイルが沢山作られるので遅くなり、またやりたい事の割にやってることが
複雑すぎるので、なんとか改善したいと思ってます

そういうことをしてくれる、いい方法はありますでしょうか
標準出力を、指定したバイト数単位にセパレータを挟んで出力してくれるコマンド、みたいな

cutでやってみようと思ったのですが、これだとオフセットを4バイトずつずらしながら
切り出していく処理となりそうで、これもまた複雑だなぁ、と…
0108名無しさん@お腹いっぱい。2014/01/11(土) 12:14:05.59
$ echo 'hogefugapiyo' | while read -N 4 STR; do echo $STR; done
0109名無しさん@お腹いっぱい。2014/01/11(土) 12:38:48.75
ふらっと通りがかったが感動した!
0110名無しさん@お腹いっぱい。2014/01/11(土) 13:01:14.29
107です

>>108
なるほどreadでやるのですね
バイト数も任意で変更できそうで、柔軟性もありますね

ありがとうございました
0111名無しさん@お腹いっぱい。2014/01/11(土) 13:41:30.36
>>108
つfold
じゃだめなんだっけ?
forをwhileに書き換えるのはおすすめしない。
0112名無しさん@お腹いっぱい。2014/01/11(土) 14:35:27.41
>>108
read: Illegal option -N
0113名無しさん@お腹いっぱい。2014/01/11(土) 15:13:02.47
dd bs=1 count=切り出しバイト数 skip=オフセットバイト数
でなんとかならんかい?
0114名無しさん@お腹いっぱい。2014/01/11(土) 15:16:16.51
> 標準出力を、指定したバイト数単位にセパレータを挟んで出力

fold だとセパレータの指定はできないんじゃない?

 $ sep="@"; echo 'hogefugapiyo' | while read -N 4 str; do echo -en "${str}${sep}";done

とかしたいのかと思ったけど…

# 最後にセパレータがくっついちゃうけどね
0115名無しさん@お腹いっぱい。2014/01/11(土) 19:21:56.73
read に -N オプション付けてるプログラマーorシス管見つけたら
社史編纂室に異動させるわ
0116名無しさん@お腹いっぱい。2014/01/11(土) 19:26:19.16
>>115
なんで?
保険でつけるでしょ?
0117名無しさん@お腹いっぱい。2014/01/11(土) 20:27:26.03
echo 1 2 3 | read k1 k2 k3 | echo $k1 $k2 $k3
1 2 3

echo 1 2 3 | read k1 k2 k3 | echo $k1 $k2 $k3 | read kk1 kk2 kk3 | echo $kk1 $kk2 $kk3

パイプって何本までできる?
0118名無しさん@お腹いっぱい。2014/01/11(土) 20:46:56.09
>>115
sed に -r つけたり grep に -P オプション付けてたりしたら
どこへ異動させられるやらw
0119名無しさん@お腹いっぱい。2014/01/11(土) 20:53:12.98
>>117
シェルがあえて限界を設定していないなら
1コマンドとして処理できる文字数以内で
単一プロセスが開けるパイプの限界数まで
じゃね?
0120名無しさん@お腹いっぱい。2014/01/13(月) 06:37:06.28
>>117
これって動く?サブシェルになりそうな気がするんだけど
0121名無しさん@お腹いっぱい。2014/01/13(月) 07:44:33.04
>>117 みたいなスクリプト書くプログラマーorシス管見つけたら
社史編纂室に異動させるわ
0122名無しさん@お腹いっぱい。2014/01/13(月) 11:25:05.94
>>107
odじゃ無いけどhexdumpの-fフォーマット辺りで何とかならんかのー
0123名無しさん@お腹いっぱい。2014/01/13(月) 22:06:10.23
>>120
動かなかった…
0124名無しさん@お腹いっぱい。2014/01/18(土) 00:30:36.30
ln -s original linked
ln -s linked linked_linked

みたいにリンクのリンク状態になっている場合、
シェルスクリプト内で、最後の linked_linked から大元のファイル
(この場合は original)を探り出す簡便な方法ってありますか?
0125名無しさん@お腹いっぱい。2014/01/18(土) 00:36:07.02
$ readlink -f linked_linked
01261242014/01/18(土) 00:38:34.41
>>125
ありがとうございます!
そんなコマンドがあったとは!
0127名無しさん@お腹いっぱい。2014/01/18(土) 14:08:09.48
bash -c "test.sh 1 2 3"
とコマンド文字列を引用符で囲うところで引用符を忘れて
bash -c test.sh 1 2. 3
としてしまった場合、 1 2 3 はどこに行ってしまうのでしょうか。
気になって仕方がないので教えてくださいー
0128名無しさん@お腹いっぱい。2014/01/18(土) 14:10:54.08
>>127
bash -c 'echo $0 $@' 1 2 3

ってやってみるとわかる
0129名無しさん@お腹いっぱい。2014/01/18(土) 14:38:07.29
シェルから、端末のビープ音を鳴らすまたはバイブする方法を教えてください。
通常端末と違って echo -e '\a' では駄目です。Androidです。
0130名無しさん@お腹いっぱい。2014/01/18(土) 14:49:19.13
127です。
おおお凄い引数として扱える、、、、ってでもこれはナンダ?
-c で生成したプロセスのbashに対して引数を与えられる、ってことでいいのかな?
まだよく理解できていませんが、色々と試してみようと思います。
128さん、ありがとうございました!
0131名無しさん@お腹いっぱい。2014/01/19(日) 02:14:50.20
a.txt には CHINKO=BIG というテキストが入っています

IFS='=' read A B < a.txt
なら思ったとおりに AにCHINKO、BにBIG が入るんだけど

cat a.txt | IFS='=' read A B
だと入ってくれません

これって何が原因に考えられますか?
0132名無しさん@お腹いっぱい。2014/01/19(日) 02:17:08.79
入ったけど。

$ IFS='=' read A B < a.txt; echo $A; echo $B
CHINKO
BIG
$ cat a.txt | IFS='=' read A B; echo $A; echo $B
CHINKO
BIG
$
0133名無しさん@お腹いっぱい。2014/01/19(日) 02:21:50.04
わかった。
Debianだとうまくいかないんだ、shがdashだから。

>>132
ありがとうございました
0134名無しさん@お腹いっぱい。2014/01/19(日) 02:40:36.32
dashでも入ったけど。
0135名無しさん@お腹いっぱい。2014/01/19(日) 03:14:26.33
えー・・・
0136名無しさん@お腹いっぱい。2014/01/19(日) 03:42:02.64
>>129
\aとかのビープを鳴らすってことならターミナルエミュレータが\aでビープなりバイブなりを再現すればいい
ので、ターミナルエミュレータの開発元に物申せばいいと思うよ。

普通に鳴らすコマンドが有るかは・・・知らん。
0137名無しさん@お腹いっぱい。2014/01/19(日) 08:20:07.33
プログラムのファイル入出力はシェルでどう指定したらいいの?
0138名無しさん@お腹いっぱい。2014/01/19(日) 08:34:17.39
>>136
いま、ConnectBot 上で echo Control-V Control-G したら、ちゃんと
ビープしたな。
0139名無しさん@お腹いっぱい。2014/01/19(日) 08:45:56.29
>>137
やりたいことをもうちょい具体的に。
0140名無しさん@お腹いっぱい。2014/01/19(日) 09:32:15.00
プログラムを作成する上で、ファイルを入力または出力するには、シェルでどのような指定を行なえばいいですか?
0141名無しさん@お腹いっぱい。2014/01/19(日) 09:46:37.45
プログラムってのがシェルスクリプトで
文字列なら入力はcatとかで変数にいれたらいい
var=`cat hoge.txt`

出力は標準出力からリダイレクト
hoge.sh > hoge.txt

バイナリならxxdとか使って16進数に変えてから使えばいい
■ このスレッドは過去ログ倉庫に格納されています