X



トップページLinux
191コメント59KB
Bashでプログラミング [転載禁止]©2ch.net
0040ピラフ
垢版 |
2015/10/05(月) 21:12:28.00ID:GG5PCVx7
>>39
         ____
        /      \
       /  ─    ─\
     /    ⌒  ⌒  \     ハハッ超ワロス 笑い死ぬわ
     |       ,ノ(、_, )ヽ    |
      \      トェェェイ   /
       /   _ ヽニソ,  く
0041ピラフ
垢版 |
2015/10/05(月) 21:13:23.82ID:GG5PCVx7
>>34
変態
0042ピラフ
垢版 |
2015/10/05(月) 21:15:32.04ID:GG5PCVx7
>>33
teeって標準出力を受け取るじゃん。
標準エラー出力のみを画面に出力するとともに
標準出力と標準エラー出力を同じファイルに出力したい。
とても難しい。とてもわからない。とても教えてほしい。

>>36
そうなんよ。わからないんよ。教えてほしいんよ。お願いするんよ。
0043ピラフ
垢版 |
2015/10/05(月) 21:16:20.27ID:GG5PCVx7
>>37
ヽ(○´ε`○)ノぶちゅ
0044ピラフ
垢版 |
2015/10/05(月) 21:17:45.51ID:GG5PCVx7
>>35
んなアホな。VBScriptはできる子だよ。ピラフが証明してみせるよ。
0045login:Penguin
垢版 |
2015/10/06(火) 00:31:46.32ID:F1F9KS5h
% cat test.sh
( echo 1; echo 2 >&2; echo 3; echo 4 >&2 )

% : > log; stdbuf -oL -eL bash test.sh 2>>log | tee -a log
1
3

% cat log
2
1
3
4

stdout と stderr との同期とれてないのが、、うーん
0046login:Penguin
垢版 |
2015/10/06(火) 04:37:35.92ID:RPZPhUvj
標準出力はバッファリングされて、
ある程度データがたまってから出力されるが、

標準エラーは重要度が高いため、
バッファリングされずに、即画面に出力される

>>3
ファイル名には、半角英数字と「_」アンダーバーだけを、
使った方がよい。外人の作るアプリでは、
日本語などは考慮されていないことが多いから

Mac用に、PowerShellでファイル名の、
半角スペースをアンダーバーに変換する、
プログラムを書いたりした
0047login:Penguin
垢版 |
2015/10/06(火) 04:44:46.72ID:NURn7XIT
>>46
> 外人の作るアプリでは、
> 日本語などは考慮されていないことが多いから

えっとな、俺日本人。
今は俺(=日本人)が作るアプリの話してる。
0048login:Penguin
垢版 |
2015/10/06(火) 04:47:28.04ID:NURn7XIT
それからスペースは日本語じゃない。

半角英数字と「_」アンダーバーだけを使った方がよい理由が、
日本語を考慮してないからというのは、理屈がおかしい
0049login:Penguin
垢版 |
2015/10/06(火) 12:44:40.38ID:4T4D9m2w
>>43
簡単なものは簡単なままにしておけクソ野郎
0050login:Penguin
垢版 |
2015/10/06(火) 12:55:28.62ID:IpqxO3tA
bashは何日でマスターできる?
0051login:Penguin
垢版 |
2015/10/07(水) 07:32:29.79ID:GQwM5Yjq
UNIX シェルスクリプト・コマンドブック 第3版
山下哲典、2015

Software Design 2014/1
にも、シェルの特集が40ページ分、載っている

まあ、1〜2週間あれば、そこそこ出来る

ただ、exportを付けないシェル変数は、
同一プロセス内でのみ有効で、
下記のサブシェルのような、別のプロセスには引き継がれない

` ` または、$( ) によるコマンド置換
( ) によるグルーピング
パイプ・リダイレクト

シェル変数を、別のスクリプトでも使いたいのなら、
. または、source コマンドで、
スクリプトをカレントシェル上に呼び出すと、
同一プロセス内での実行となる

sh スクリプト名 → 別のプロセス(子プロセス)
. スクリプト名 → 同一プロセス
0052login:Penguin
垢版 |
2015/10/07(水) 10:29:19.64ID:M6NB5j5s
シュエルスクリプトの関数にするか、
それとも外部プログラムにするか、
どっちがいい?
0053login:Penguin
垢版 |
2015/10/07(水) 12:55:15.05ID:8ottO0ep
>>52
動くならどっちでもいい。直感的にわかりやすい。コードの見通しが良くなる方が望ましい。
0054login:Penguin
垢版 |
2015/10/07(水) 19:58:15.15ID:RV6ZvwXQ
GTK+のプログラミングマスターした人いる?
紙資料で3.5cmの厚みなんだ。
為になるよ。
0055login:Penguin
垢版 |
2015/10/08(木) 09:11:47.18ID:WEInxm9o
>>27
bashはOSに依存しないし、該当スレはbashなりzshなり使用するシェルをきちんと申告すれば対応してくれる
それ以上に理由がない限りスレを立てる意味がない
0056login:Penguin
垢版 |
2015/10/08(木) 20:48:47.87ID:lgr3Fqt0
なぜbashなのに拡張子を.shにするのか
0057login:Penguin
垢版 |
2015/10/08(木) 22:09:59.71ID:zqGOFpq7
拡張子は飾りです
お好きなようにどうぞ
0058ピラフ
垢版 |
2015/10/08(木) 22:25:19.94ID:HskmnVPN
>>55
UNIX板はUNIXに依存してるでしょうが。
女性専用の老人ホームに若くてピチピチの可愛いギャルが
入居するようなものだよ。女に変わりはないだろうけども
不適切だよね。老人じゃないし、可愛いし、ピチピチだし。
場を弁えるってそういうことだと思う。若い人が新たにコミュニティを作る
ことには意味があると思うし、ピラフは梯子(テコ)でも動かない!
0059login:Penguin
垢版 |
2015/10/08(木) 23:29:11.08ID:UuNzaExB
というスピリッツで単発スレ立てする人は自分が満足すると埋め立ての責任を持たず放置する傾向にあるんだよな。
ちゃんと1000まで話題を提供してくれるの?(´・ω・`)
0060ピラフ
垢版 |
2015/10/08(木) 23:40:22.73ID:HskmnVPN
>>59
みんなでここを良いスレにしようよ。
ピラフだけでは無理。みんなで力を合わせようよ。
0061ピラフ
垢版 |
2015/10/09(金) 02:29:26.94ID:apuZirFb
全員がピラフになれば、ピラフだけでもヤれる
0062login:Penguin
垢版 |
2015/10/09(金) 23:04:23.52ID:3VAz+DjZ
>>60
あのさ、>>45 に対して礼のひとつも言わないのは人としてまずくない?
0063login:Penguin ダメな奴は何をやっても©2ch.net
垢版 |
2015/10/14(水) 05:54:07.87ID:VsqQS5me
>>62
表示したいのはエラー出力やし人格否定するほどではないな


$ cat test.sh
#!/bin/sh
echo 1; echo 2 >&2; echo 3; echo 4 >&2

$ ( ./test.sh >> log ) 2>&1 | tee -a log
2
4

$ cat log
1
2
3
4

保証はせーへんけどな
0064login:Penguin
垢版 |
2015/10/14(水) 06:28:04.34ID:v4uCjH3b
>>62
> あのさ、>>45 に対して礼のひとつも言わないのは人としてまずくない?

ですよね。お礼は三行。常識です。
0065login:Penguin
垢版 |
2015/10/17(土) 11:28:33.01ID:tB03pcpd
もう>>59が言ってる状態に入りかけてる
0066login:Penguin
垢版 |
2015/10/22(木) 23:02:24.35ID:hLzbOUmG
☆ 日本の核武装は早急に必須ですわ。☆
総務省の『憲法改正国民投票法』、でググってみてください。
日本国民の皆様方、2016年7月の『第24回 参議院選挙』で、日本人の悲願である
改憲の成就が決まります。皆様方、必ず投票に自ら足を運んでください。お願い致します。
0067login:Penguin
垢版 |
2015/11/05(木) 02:04:29.11ID:70mAwyHg
bashで30ファイル、計1500行ぐらいの
大作ツール作ったぜw
0069login:Penguin
垢版 |
2015/11/07(土) 02:29:03.19ID:M5pvVJO6
pythonなら1桁落ちるわけですね?
0071ピラフ ◆9Jro6YFwm650
垢版 |
2015/11/09(月) 00:31:06.30ID:uu5Sv9eW
>>65
ピラフもうネタ切れだからさ、なんか話題あったら書き込んで。
遠慮しなくていいから。みんなでここをいいスレにしようよ!
0072ピラフ ◆9Jro6YFwm650
垢版 |
2015/11/09(月) 00:39:20.01ID:uu5Sv9eW
変数の宣言について
たとえば、こういうプログラムを書いたとき
pilafは9回表示されるかと思いきや3回しか表示されない。
fun_testでfun_mainのiを読み書きしてしまうから。
だから、変数はローカル変数で宣言する必要がある。

#!/bin/bash

fun_test() {
 i=1
 while (( i <= 3 )); do
  echo pilaf
  (( i++ ))
 done
}

fun_main() {
 i=1
 while (( i <= 3 )); do
  fun_test
  (( i++ ))
 done
}

fun_main
0073login:Penguin
垢版 |
2015/11/09(月) 02:21:06.81ID:vvdpTyUy
以下のコードは何も表示されない。

#!/bin/bash

echo "hello" | while read msg; do
 var=$msg
done

echo $var
0074login:Penguin
垢版 |
2015/11/09(月) 03:17:18.36ID:glvAAiJJ
パイプを使っているから、
その部分がサブシェル(子プロセス)になっていて、

そこで宣言した変数varが、
カレントシェル(親プロセス)に持ち出せない

どういう解決策があったっけ?
export を付ければよいのか?

>>51
に書いておいた
0075login:Penguin
垢版 |
2015/11/09(月) 03:34:11.12ID:sW5M/AJB
echo -ne "hello\nworld" | while read msg; do echo $msg ;done

うっかりしてると最後の行を処理し損ねる
0076login:Penguin
垢版 |
2015/11/09(月) 03:41:31.11ID:vvdpTyUy
こう書き換えるだけでいいよ

while read msg; do
 var=$msg
done < <(echo "hello")
007776
垢版 |
2015/11/09(月) 11:14:31.70ID:9zOZIa4h
さて、ではこれはどう表示されるでしょうか?

#!/bin/bash

i=0

while read msg; do
echo "A $msg"
((i+=3))
done < <(while read msg; do
echo "B $msg"
((i+=2))
done < <(echo "hello"))

echo $i
0079ピラフ ◆9Jro6YFwm650
垢版 |
2015/11/17(火) 23:05:38.66ID:cJiBRV26
変数の宣言と同時に値を代入を行うと
コマンド置換を使うときにリターンコードを取得できない

fun_getValue() {
 return 1
}

fun_main() {
 declare value=$(fun_getValue)
 echo $?
}

fun_main

上のプログラムは0を出力する

declare value
value=$(fun_getValue)

必然的にこういう形を取ることになる
VBScriptみたい
0080login:Penguin
垢版 |
2015/11/19(木) 09:42:08.42ID:Jjkt5i+K
間接参照はこうすればいいみたいだけどさ、

var=123
ref="var"
echo "${!ref}" # 123

間接代入はどうすればいいの?
一応evalつかってできたけど、これしかない?

eval "$ref"=456
0081login:Penguin
垢版 |
2015/11/19(木) 22:36:45.54ID:3iQoIwnP
だまってPHPとかC言語とか使えや。
反論不要。だまって使え。
所詮bashはシェルだよ。
プログラミング言語として使おうとしなくていい。
0082login:Penguin
垢版 |
2015/11/20(金) 06:03:03.13ID:oqxoCWjH
(まともな)コーディング規約ってないかな?
0083login:Penguin
垢版 |
2015/11/20(金) 17:45:24.35ID:UgnIOuo6
[[ $a = $b ]]

$a はただの文字列として扱われるが、$b はパターンマッチング処理されることに注意

単なる文字列比較をしたい場合は
[[ $a = "$b" ]] または [[ "$a" = "$b" ]]


なお、[ ] と違って [[ ]] は $a を "" で囲む必要はない。
0084ピラフ ◆9Jro6YFwm650
垢版 |
2015/11/23(月) 11:07:28.01ID:e6CiHMu0
>>83
echoもそうだよね。
いい感じのエラーログを出力しようとしたらファイル丸出し。

a="*** ERROR ***"
echo $a
0085login:Penguin
垢版 |
2015/11/23(月) 12:24:20.91ID:rfqyRG3i
echo には -e という文字列を出力できないという問題があるので
完ぺきを求めるなら、printf "%s\n" "$text" とした方がいい。

なお、echo も printf も それぞれ /bin/echo、/usr/bin/printf という
バイナリがあるが、bash も sh も zsh もシェルビルトイン関数である。
0086ピラフ ◆9Jro6YFwm650
垢版 |
2015/11/23(月) 14:03:10.18ID:e6CiHMu0
>>85
マジか!?マジでか!!
echo難儀なコマンドだね
0088login:Penguin
垢版 |
2015/11/23(月) 17:25:37.43ID:m+EccjTy
あー、うん、せやね。

-eだけじゃなくて-nもだめだし-eneもだめ
さて$aに任意の文字が入っている時、それをechoで問題なく出力するにはどうするか?

もちろん、$aに \e[33m のような文字列が入っていることがあるが、
printf "%s\n" $a と同じようにそのまま出力するというのが条件。

とまで書かないといかんよね。
0089login:Penguin
垢版 |
2015/11/24(火) 10:07:24.30ID:xf2Nfg3B
bashでは知らないけどzshでは
echo e- |rev
とすると表示できたよ。
0090login:Penguin
垢版 |
2015/11/24(火) 14:55:58.31ID:jlJmLfSH
a="-e"
echo "$a" |rev

zshでも表示されねーじゃねーかwww
0091login:Penguin
垢版 |
2015/11/24(火) 15:25:38.09ID:xf2Nfg3B
echo $'\0'$a
0092login:Penguin
垢版 |
2015/11/24(火) 15:35:52.95ID:xf2Nfg3B
いや、その条件ならa='e-'にしてrevするべきだろ。
0093login:Penguin
垢版 |
2015/11/24(火) 15:38:52.15ID:jlJmLfSH
条件は $a に -e が入っている場合なんですが?

もちろん $a には-e だけじゃなくて、-n や -ene や
e-が入っていることもあります。
0094login:Penguin
垢版 |
2015/11/24(火) 15:44:01.15ID:jlJmLfSH
>>91

a="ab"

$ echo -n $a | wc -c
2

$ echo -n $'\0'$a | wc -c
3


1文字増えちゃってますよ?
0095login:Penguin
垢版 |
2015/11/24(火) 15:46:08.87ID:xf2Nfg3B
そんな偉そうに言われてもな。89にたいする90の解答って..
0096login:Penguin
垢版 |
2015/11/24(火) 15:46:57.54ID:xf2Nfg3B
そりゃ増えるよ。見たまんま増やしてるのだから。
0097login:Penguin
垢版 |
2015/11/24(火) 16:11:17.98ID:jlJmLfSH
? ネタ回答はいらんって話だよ。
0098login:Penguin
垢版 |
2015/11/24(火) 23:41:07.34ID:zPMHS13p
Bashでツールを作ったんですけど、ここで紹介するのありですか?
ソースコードはかなりまじめに書いています。
ドキュメントと仕上げでもう少しだけ時間が掛かりそうですけど。
0099ピラフ ◆9Jro6YFwm650
垢版 |
2015/11/24(火) 23:51:49.15ID:uXBTKSJE
>>98
      ┓┏
     (^ω^) アリだっ!
   ┌.ゝ .ノ┐
    ┌'、_丿┐
    ┛   ┗
0101login:Penguin
垢版 |
2015/11/25(水) 00:43:00.55ID:cNzVYyHb
>>99
じゃあ、終わったら連絡しますね。
0102login:Penguin
垢版 |
2015/11/25(水) 15:14:14.21ID:zaXwxH/w
>>72
> while (( i <= 3 )); do
>  echo pilaf
>  (( i++ ))
> done

((i++)) 【let i=++】と
((i+=1)) 【let i=i+1】と
i=$((i+1)) は
厳密には違う。

i=0; ((i++)); echo $? => 1
i=0; ((i+=1)); echo $? => 0
i=0; i=$((i+1)); echo $? => 0

i=-1; ((i++)); echo $? => 0
i=-1; ((i+=1)); echo $? => 1
i=-1; i=$((i+1)); echo $? => 0

set -e をしていると、その場で終了してしまうことになる。
計算のみの用途として、安心して使えるのは i=$((i+1)) だ
0103login:Penguin
垢版 |
2015/11/25(水) 15:20:15.61ID:zaXwxH/w
よく見たらこの例はiが1から始まってるから大丈夫か。
0104ピラフ ◆9Jro6YFwm650
垢版 |
2015/11/25(水) 23:57:59.28ID:qKKURXkV
>>102
((φ(・Д´・ *)ホォホォ 勉強になります!!
0105ピラフ ◆9Jro6YFwm650
垢版 |
2016/01/01(金) 01:37:32.67ID:OSOvSqc1
       ○
 /⌒\ (__)
 \●/(__)/⌒\
   ∩ (・∀・ )\●/  あけおめ
   Y  ̄ ||y||  ̄`''φ
    Lノ /ニ|| ! ソ >
    乂/ノ ハ ヽー´
    `ー-、__|
0106ピラフ ◆9Jro6YFwm650
垢版 |
2016/01/01(金) 01:42:34.66ID:OSOvSqc1
曜日の定数を自動生成しちゃう

for i in $(seq 0 6); do
 date -d "$i days" "+%A %w"
done | sort -k 2 | sed -e "s/ /=/" | sed -e "s/^/readonly /"
0107ピラフ ◆9Jro6YFwm650
垢版 |
2016/01/01(金) 01:43:48.83ID:OSOvSqc1
>>106
結果がこれ
readonly Sunday=0
readonly Monday=1
readonly Tuesday=2
readonly Wednesday=3
readonly Thursday=4
readonly Friday=5
readonly Saturday=6
0108login:Penguin
垢版 |
2016/01/05(火) 14:14:58.50ID:tOHAFEvw
>>107

可読性はタイプ数よりも大切だってことが
よく分かるねw
0109login:Penguin
垢版 |
2016/01/05(火) 19:46:11.96ID:btsG67QP
bash使うなら曜日名は配列に格納しておいて入ってくる引数を添字として使えばいいんでないの?
0110login:Penguin
垢版 |
2016/02/06(土) 12:04:35.15ID:yPG1W7x/
PATH の中に空の : があると、カレントディレクトリがコマンドサーチパスに含まれてしまいますが、
環境変数が空であった等の理由により、空の : (ex /usr/local/sbin::/usr/local/bin など)が
パスに含まれてしまうことはよくあります。
カレントディレクトリがコマンドサーチパスに含まれるのはセキュリティーホールになりかねないので、
PATHに空の : が含まれないようにしたいのですが、よい方法はないでしょうか?
0111login:Penguin
垢版 |
2016/02/06(土) 15:12:52.27ID:OQYFu5/W
よくあるなんてことはない
0112login:Penguin
垢版 |
2016/02/06(土) 15:34:21.77ID:ToE+zhkT
変数が空なら何も入れないようにすればいいじゃないですか?
0113login:Penguin
垢版 |
2016/02/06(土) 15:37:43.31ID:ToE+zhkT
そもそもPATHに使われる環境変数が空であることはありえないはずなんだがね。
普通PATHに使われる変数には、定数として決め打ちのパスが代入されているはず。

なぜならば、空が入る可能性があるということは、
空以外の任意の文字列が入るということだろう?
であれば、環境変数に "./" が入ることがあるかもしれないし
"/malware/" という値が入るかもしれない。

カレントディレクトリだけを不正だって意味は無い。
0114login:Penguin
垢版 |
2016/02/06(土) 17:53:03.07ID:yPG1W7x/
>空であることはありえないはずなんだがね。

そうなんですか、現在の環境じゃインストール後、マニュアル操作で PATH をいじっていないので、
そういうもんだと思っていたのですが、何か問題があるようですね。
どこでそうなってるいるか調べてみます。
0115110,114
垢版 |
2016/02/06(土) 20:27:21.72ID:yPG1W7x/
わかりました。

<アプリ名>_HOME=<アプリのインストールパス> # この <アプリ名>_HOME は関連ツールから参照される
PATH=$PATH:<アプリ名>_HOME/bin

みたいな記述で、最初の 「<アプリ名>_HOME」 のスペルが間違っていました。
このアプリをすぐ使っていれば気づいたはずですが、インストールした後ほかが忙しくて
ほったらかしにしていたので気づかなかったというオチです。
どうもお騒がせしました。
0116login:Penguin
垢版 |
2016/02/09(火) 22:51:43.16ID:1eA4ku59
配列の代入(複製)というのはどうやればできるのでしょうか。
0117login:Penguin
垢版 |
2016/03/08(火) 14:41:04.49ID:ZfpEki75
x='123'
y=`date +%m | sed 's/^0//' `
z= expr $y "*" 1000 + $x
cat k-m | sed 's/PPP/$z/'
で ファイル k-mのPPP値を3123に変えたいのですが
$zではだめです。
どうしたらいいでしょう。
0118login:Penguin
垢版 |
2016/03/08(火) 14:48:48.74ID:B0X8XFR+
>>117
読むのだるいからさ?
問題ない所までは省いて
問題があるところだけ書けよ
0119login:Penguin
垢版 |
2016/03/08(火) 15:49:59.75ID:ZfpEki75
すまん

echo 'port=PPP' > test
cat test
x=2
sed 's/PPP/'"$x"'/' test
は問題ない。

長いファイルではダメなのかな?
0120login:Penguin
垢版 |
2016/03/08(火) 17:54:50.78ID:B0X8XFR+
cat test の意味は?
必要最小限にしないからわからんのよ。
testの中身の文字もさ、限界ギリギリまで減らしてみて
0121login:Penguin
垢版 |
2016/03/08(火) 17:55:43.82ID:B0X8XFR+
修正

限界ギリギリまで減らした状態での
動く場合 と 動かない場合 の
2つのパターンを書いてみて
0122login:Penguin
垢版 |
2016/03/10(木) 09:06:25.61ID:gEv7eiQN
k1の内容が
media_dir=/home/foge/Downloads/
network_interface=eth0
port=PPP
serial=6810
で 、シェルクリプトが 
z=55555
sed 's/PPP/'
0123login:Penguin
垢版 |
2016/03/10(木) 09:49:42.62ID:gEv7eiQN
あれ 尻切れとんぼ
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 はだめ
0124login:Penguin
垢版 |
2016/03/10(木) 09:57:45.77ID:1kGddc4A
だからね。

動くやつはそれでいいよ。

動かない方、どこまで想定通りに動いているのか?
想定通りに動いているところは省略して、
想定通りに動いていない所だけ書いてって話をしてるんだよ。
0125login:Penguin
垢版 |
2016/03/10(木) 10:56:36.03ID:gEv7eiQN
了解
echo $z
で確かに$zには想定とおりの値がでてくる。
しかし sed 's/PPP/'"$z"'/' k1 はだめ。
'"$z"' がいけないと思う。 だが 分からない。
0126login:Penguin
垢版 |
2016/03/10(木) 11:24:11.01ID:gEv7eiQN
きたならしく 一応できた。   ./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
0127login:Penguin
垢版 |
2016/03/10(木) 11:56:18.43ID:NdYWsqwM
それは echo ではなく expr が出力している。

z=`expr $y "*" 1000 + $x`
sed "s/PPP/$z/" k1

でいいんじゃないの? これでちゃんと動いたよ。
0128login:Penguin
垢版 |
2016/03/10(木) 12:28:00.31ID:gEv7eiQN
shellが違うんでしょうね、うちでは 下ではエラー expr: syntax error
z=`expr $y "*" 1000 + $x`
echo $z
使ってるのは OS :armbian で シェルは わからない
0129login:Penguin
垢版 |
2016/03/10(木) 22:00:45.11ID:NdYWsqwM
多分、勘違いしているのはここ。

z= expr $y "*" 10 + $x

これは一時的に環境を変更した上でコマンドを起動するための構文。
bash の man の 2520 行目辺りに書かれている。
この場合は環境変数 z に空文字列をセットして expr を起動する。
そして、それが終わったらもう z は存在しない。
だから echo では何も出力されない。
0130login:Penguin
垢版 |
2016/03/25(金) 11:08:22.48ID:BrsvjcQb
環境変数 $BASH_COMMAND で最後に実行したコマンドが取得できますが
ほんとに最後に実行したコマンドなので
ls | cat
みたいにしたときに当然ながら cat しか取れません

最後に実行したときのコマンドラインに打った文字列
を取得するにはどうしたらよいでしょうか
0131login:Penguin
垢版 |
2016/03/25(金) 11:21:48.13ID:Wj6xxs6s
historyあたりで頑張るとか
0132login:Penguin
垢版 |
2016/03/25(金) 11:33:33.72ID:BrsvjcQb
>>131
ありがとう
historyあたりで頑張ります
0133login:Penguin
垢版 |
2016/03/31(木) 08:26:58.05ID:gSxvuyP1
Windows10搭載ってまじかよ
0135login:Penguin
垢版 |
2016/04/01(金) 10:00:39.79ID:+PxKnYGY
curlでAPI叩いてるんだけど返事帰ってくるまでCreating..........みたいに....を増やしたい
どういうふうに書けばいい?
0136login:Penguin
垢版 |
2016/04/01(金) 10:23:48.01ID:2l1U0Mzg
>>135
別プロセスで実行して、そのプロセスが生きている間
. を増やし続ければいい
0137login:Penguin
垢版 |
2016/04/01(金) 10:48:52.54ID:+PxKnYGY
1秒ごとにチェックして生きてたら....を出力死んでたらそのままみたいなことか
やってみるわ
0138login:Penguin
垢版 |
2016/04/01(金) 16:24:42.97ID:YrmxN89w
windowsでbaプロできるようになるみたいですね(´・ω・`)
0139login:Penguin
垢版 |
2016/04/01(金) 19:49:29.08ID:opN9G6gR
HOGEDIR="${HOME}/path/to/directory" のように既存のディレクトリへのpathを変数に入れたら下記のような感じで実在チェックした方がいいんでしょうか?
自分は転ばぬ先の杖だと思って(事実、何度かtypoしてます)書くようにしていますが……

if test ! -d "$HOGEDIR"; then
    echo '$HOGEDIR is *NOT* a Directory!' 1>&2
    exit 1
fi
0140login:Penguin
垢版 |
2016/04/01(金) 20:48:16.55ID:pqGjBE9F
変数に入れるかどうかは実在チェックの必要性に変化を与えるものではない
レスを投稿する


ニューススポーツなんでも実況