Bashでプログラミング [転載禁止]©2ch.net (264レス)
上下前次1-新
121: 2016/03/08(火)17:55 ID:B0X8XFR+(3/3) AAS
修正
限界ギリギリまで減らした状態での
動く場合 と 動かない場合 の
2つのパターンを書いてみて
122: 2016/03/10(木)09:06 ID:gEv7eiQN(1/5) AAS
k1の内容が
media_dir=/home/foge/Downloads/
network_interface=eth0
port=PPP
serial=6810
で 、シェルクリプトが
z=55555
sed 's/PPP/'
123: 2016/03/10(木)09:49 ID:gEv7eiQN(2/5) AAS
あれ 尻切れとんぼ
z=5555
sed 's/PPP/'"$z"'/' k1 の時はOK。
x='123'
y=`date +%m | sed 's/^0//' `
z= expr $y "*" 1000 + $x
echo $z
sed 's/PPP/'"$z"'/' k1 はだめ
124: 2016/03/10(木)09:57 ID:1kGddc4A(1) AAS
だからね。
動くやつはそれでいいよ。
動かない方、どこまで想定通りに動いているのか?
想定通りに動いているところは省略して、
想定通りに動いていない所だけ書いてって話をしてるんだよ。
125: 2016/03/10(木)10:56 ID:gEv7eiQN(3/5) AAS
了解
echo $z
で確かに$zには想定とおりの値がでてくる。
しかし sed 's/PPP/'"$z"'/' k1 はだめ。
'"$z"' がいけないと思う。 だが 分からない。
126: 2016/03/10(木)11:24 ID:gEv7eiQN(4/5) AAS
きたならしく 一応できた。 ./s4 `./s5` で。
k1 は既出。 minisldaのポートを安全改善のため毎月変えようと思って
cat s4
awk '{sub("PPP", "'$1'" ); print $0;}' k1
cat s5
x='10000'
y=`date +%m | sed 's/^0//' `
z= expr $y "*" 10 + $x
echo $z
127: 2016/03/10(木)11:56 ID:NdYWsqwM(1/2) AAS
それは echo ではなく expr が出力している。
z=`expr $y "*" 1000 + $x`
sed "s/PPP/$z/" k1
でいいんじゃないの? これでちゃんと動いたよ。
128: 2016/03/10(木)12:28 ID:gEv7eiQN(5/5) AAS
shellが違うんでしょうね、うちでは 下ではエラー expr: syntax error
z=`expr $y "*" 1000 + $x`
echo $z
使ってるのは OS :armbian で シェルは わからない
129: 2016/03/10(木)22:00 ID:NdYWsqwM(2/2) AAS
多分、勘違いしているのはここ。
z= expr $y "*" 10 + $x
これは一時的に環境を変更した上でコマンドを起動するための構文。
bash の man の 2520 行目辺りに書かれている。
この場合は環境変数 z に空文字列をセットして expr を起動する。
そして、それが終わったらもう z は存在しない。
だから echo では何も出力されない。
130: [sega] 2016/03/25(金)11:08 ID:BrsvjcQb(1/2) AAS
環境変数 $BASH_COMMAND で最後に実行したコマンドが取得できますが
ほんとに最後に実行したコマンドなので
ls | cat
みたいにしたときに当然ながら cat しか取れません
最後に実行したときのコマンドラインに打った文字列
を取得するにはどうしたらよいでしょうか
131(1): 2016/03/25(金)11:21 ID:Wj6xxs6s(1) AAS
historyあたりで頑張るとか
132(1): 2016/03/25(金)11:33 ID:BrsvjcQb(2/2) AAS
>>131
ありがとう
historyあたりで頑張ります
133: 2016/03/31(木)08:26 ID:gSxvuyP1(1) AAS
Windows10搭載ってまじかよ
134: 2016/03/31(木)12:19 ID:lhT3jASv(1) AAS
外部リンク:unix.oskp.net
XPとかなbashとかコンパイルしたら
動いたけど、バイナリ互換はすごいな
135(1): 2016/04/01(金)10:00 ID:+PxKnYGY(1/2) AAS
curlでAPI叩いてるんだけど返事帰ってくるまでCreating..........みたいに....を増やしたい
どういうふうに書けばいい?
136: 2016/04/01(金)10:23 ID:2l1U0Mzg(1) AAS
>>135
別プロセスで実行して、そのプロセスが生きている間
. を増やし続ければいい
137: 2016/04/01(金)10:48 ID:+PxKnYGY(2/2) AAS
1秒ごとにチェックして生きてたら....を出力死んでたらそのままみたいなことか
やってみるわ
138: 2016/04/01(金)16:24 ID:YrmxN89w(1) AAS
windowsでbaプロできるようになるみたいですね(´・ω・`)
139: 2016/04/01(金)19:49 ID:opN9G6gR(1) AAS
HOGEDIR="${HOME}/path/to/directory" のように既存のディレクトリへのpathを変数に入れたら下記のような感じで実在チェックした方がいいんでしょうか?
自分は転ばぬ先の杖だと思って(事実、何度かtypoしてます)書くようにしていますが……
if test ! -d "$HOGEDIR"; then
echo '$HOGEDIR is *NOT* a Directory!' 1>&2
exit 1
fi
140(1): 2016/04/01(金)20:48 ID:pqGjBE9F(1) AAS
変数に入れるかどうかは実在チェックの必要性に変化を与えるものではない
上下前次1-新書関写板覧索設栞歴
あと 124 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 0.783s*