> The -a, -b, -C, -e, -f, -m, -n, -o option, -u, -v, and -x options > are described as part of the set utility in Special Built-In Utilities. > The option letters derived from the set special built-in > shall also be accepted with a leading <plus-sign> ( '+' ) instead of a leading <hyphen-minus> > (meaning the reverse case of the option as described in this volume of POSIX.1-2017). http://pubs.opengroup.org/onlinepubs/9699919799/utilities/sh.html#tag_20_117_040606デフォルトの名無しさん (ワッチョイ b903-wpdm)2018/11/11(日) 00:55:22.01ID:TQKm/8h90>>604 なんでワイに聞くねんwバカなんかおまえ? 0607デフォルトの名無しさん (ブーイモ MMab-/quP)2018/11/11(日) 00:56:50.21ID:AsOVz6G5M それを質問の意味で受け取るとか日本語大丈夫? 0608デフォルトの名無しさん (ワッチョイ b903-wpdm)2018/11/11(日) 01:00:58.12ID:TQKm/8h90 日本語が大丈夫ってどおゆう意味や? 0609デフォルトの名無しさん (ワッチョイ 9398-Nrm4)2018/11/11(日) 01:05:43.58ID:Tyd11AGx0 おちつけ、今はまだ慌れるときじゃない。 0610デフォルトの名無しさん (ワッチョイ b903-wpdm)2018/11/11(日) 01:09:59.72ID:TQKm/8h90 慌れるて日本語あるんか?ちょっと落ち着けやw 0611デフォルトの名無しさん (ワッチョイ 9398-Nrm4)2018/11/11(日) 02:43:07.51ID:Tyd11AGx0 りっしんべんが余計だった 0612デフォルトの名無しさん (ワッチョイ 9164-30bX)2018/11/11(日) 12:28:16.92ID:PRctJ18Z0 C言語ではなくシェルスクリプトでシグナルって活用してる? kill(1)ユーティリティの-s KILLオプションくらいしか使ったことがないので いまいち便利さが分からない。 利用者定義シグナルSIGUSER1とか 使いこなせたらシェルスクリプトでできることの幅が広がりそう 0613デフォルトの名無しさん (ワッチョイ 9398-Nrm4)2018/11/11(日) 12:33:00.83ID:Tyd11AGx0 CTRL-Cされたときとかプログラム終了時に 作業ファイルを削除することぐらいかなぁ
The shell shall expand all tokens in the expression for parameter expansion, command substitution, and quote removal. 0624デフォルトの名無しさん (ワッチョイ 9398-Nrm4)2018/11/14(水) 17:18:05.78ID:Da4Ohzbn0 あ、なるほど。わかった。
算術演算の前に$とかコマンドが展開されるっていうのも 仕様なのでそれも書いたとおりに動作する 0626デフォルトの名無しさん (オッペケ Srcd-3Pmj)2018/11/14(水) 19:06:25.03ID:vF6ts/2/r 大きなファイルがいくつも入ったディレクトリのmvして分かったけど ファイルがいくつあっても全部のcpが終わったあとにrmされるんだね てっきり1ファイル毎かと思ってた 0627デフォルトの名無しさん (アウアウウー Sa05-pmE1)2018/11/14(水) 19:23:07.48ID:bryEJhFFa>>626 途中で中止した時に移動先を削除するだけで済むからじゃないかな。 0628デフォルトの名無しさん (ワッチョイ 9164-30bX)2018/11/14(水) 19:34:11.25ID:P8pvRdrO0>>625 んー。でも俺には > If the shell variable x contains a value that forms a valid integer constant, > optionally including a leading or , > then the arithmetic expansions "$((x))" and "$(($x))" shall return the same value. は$((x))の「時だけ」$(($x))と等しいと読めるがな。 いずれにしても算術展開で算術計算をする際に変数を使いたいときは $(( ($x) + 1 )) にしてるわ。どっかで$(( x + 1 ))がエラーになるのが怖いので。 0629デフォルトの名無しさん (アウアウウー Sa05-Vzv6)2018/11/14(水) 21:35:28.76ID:tEjpeAN9a>>626 renameはアトミック操作にすべきって思想が強いから 違うファイルシステムにmvするときはそうだな 0630デフォルトの名無しさん (ブーイモ MMb3-D3se)2018/11/14(水) 21:50:05.93ID:D6nmDs23M $(())が展開できるものは限定されていて、$((x+1))が意図通りに展開される根拠は$((x))と$(($x))が等しいって書いてある一文しかない。 これは$(())の中だけはx=$xであると解釈できなくもないけど、算術演算をするなら$をつけないのが正しいとは読めないな。 0631デフォルトの名無しさん (ワッチョイ 9398-Nrm4)2018/11/14(水) 22:59:44.88ID:Da4Ohzbn0 > $((x+1))が意図通りに展開される根拠は$((x))と$(($x))が等しいって書いてある一文しかない。 一つあれば十分じゃん。逆に展開されない根拠はないんだし
> Arithmetic expansion provides a mechanism for evaluating an arithmetic expression and substituting its value. > The format for arithmetic expansion shall be as follows: > > $((expression)) > > The expression shall be treated as if it were in double-quotes, except that a double-quote inside > the expression is not treated specially. The shell shall expand all tokens in the expression for > parameter expansion, command substitution, and quote removal.
まず、$(( )) の中にある。これがexpressionだ。 expand all tokens in the expression 式の中にある以下のトークンの展開、 for parameter expansion, command substitution, and quote removal. パラメータ展開、コマンド置換、クォートの削除
> Next, the shell shall treat this as an arithmetic expression and substitute the value of the expression. その次(Next)に この式を arithmetic expression (算術式)として扱う