[過去ログ] シェルスクリプト総合 その31 (1002レス)
上下前次1-新
抽出解除 レス栞
このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
3(1): デフォルトの名無しさん [sage] 2019/08/10(土) 23:21:14.80 ID:L+B8OP2P(3/5) AAS
初心者へのアドバイス
・適した道具を判断するのも頭の重要な使い方。
シェルスクリプトよりも Per lまたは Python の方が適した処理にはそちらを使いましょう。
・知らないコマンドが出てきたら man(1) を引きましょう。
・思い通りに動かないときは、まずは sh(1) の -x オプションでトレースしましょう。
回答者への注意事項
・相手がシェルスクリプトでの処理方法を質問しているのにもかかわらず、よく知りもせずに「そういうのはPerl, Python使え」と回答するのはやめましょう。
安易に Perl や Python に逃げずに小さなコマンドを組み合わせシェルスクリプトで処理するのが頭のいいやり方。
・質問に対して問題が間違ってるといちゃもんをつけるのも避けましょう。
・例に対して、その例だけ動くコードを書くのはやめましょう。例は例です。本当に実現したいことを文章から読み取りましょう。
60(1): デフォルトの名無しさん [sage] 2019/08/11(日) 18:56:22.80 ID:k+c7cOcw(14/23) AAS
>>57俺はとうに終わってるもん。お前もその俺のレスにレスしてんですけど?さすがだな
71(1): デフォルトの名無しさん [sage] 2019/08/11(日) 19:14:12.80 ID:++HFlOfG(30/35) AAS
>>6464(2): デフォルトの名無しさん [sage] 2019/08/11(日) 19:03:26.79 ID:k+c7cOcw(16/23) AAS
>>57と言っておいて我慢できなくて>>62なのか?>>58もお前だけの話題だけど?そのレスもオマ環の説明って、お前だけの話題だろうw
オマ環でそういうことをしていても、macOS使ってるなら/bin/shがbashだとわかっているだろうに。なぜ/bin/shをbashにする環境作るのがとかのたまうのかわからん。たいした使ってない=Macももただ並べただけだなという「俺の印象」w
てか、そのオマ環を理由にするのは辞めなさい、いつもの高慢なお前には情けないw
> macOS使ってるなら/bin/shがbashだとわかっているだろうに。なぜ/bin/shをbashにする環境作るのがとかのたまうのかわからん。
お前、macOSしかbash動く環境知らんのか?
bashはGNUプロジェクトで作られたもので、GNU環境(例 Linux)が一番に確認すべき環境だろ
bashでの動きの話をしてるんだから、Linuxで検証するのが一番手っ取り早い。macOSの話を持ち出したのは「お前が」「あとからだ」
Debinaでは/bin/shの実体はdashなんだから、/bin/shの実体がbashの場合の挙動を確認するには環境を作らなければいけない
もっとも、macOSでは、/bin/shは/bin/bashへのシンボリックリンクではなく
本物のbashでもなく、Appleによる改変版bashだったわけだけど
234: デフォルトの名無しさん [sage] 2019/08/21(水) 13:31:56.80 ID:23vMmTO3(7/13) AAS
>>231,232231(1): デフォルトの名無しさん [sage] 2019/08/21(水) 13:28:58.51 ID:rB/3mk9e(1) AAS
という話をして欲しいんじゃなくて
(あんたが思う)bashの便利な機能を聞いてるんだよ
ksh,zshなどでも同じくあるのではないあくまもでbash独自の機能なの?
533: デフォルトの名無しさん [sage] 2019/09/01(日) 05:19:56.80 ID:tx4fDw07(24/24) AAS
いや、言ってるけど
そこまで読めないのか?というのは拭えないというだけで
570(1): デフォルトの名無しさん [sage] 2019/09/11(水) 12:29:34.80 ID:0GNwCqDq(1/2) AAS
POSIXは他の環境でも動く共通規約
GNUのソフトは高機能だがそれ自体が方言ということ
組み込みは機能を削ぎ落とすため色々知恵が必要
一般人はbashだけ使ってればおk
こんな認識で問題ない?
635: デフォルトの名無しさん [sage] 2019/09/16(月) 23:46:42.80 ID:LCUbae2V(3/3) AAS
>>633633(1): デフォルトの名無しさん [sage] 2019/09/16(月) 23:39:17.58 ID:LCUbae2V(1/3) AAS
>>630
hex=fa
oct=$(( ($hex >> 6) * 100 + ($hex >> 3 & 0x7) * 10 + ($hex & 0x7) ))
# oct=$((0x$hex >> 6))$((0x$hex >> 3 & 0x7))$((0x$hex & 0x7)) 3桁固定版
echo "$oct"
出力が必須でない場合(変数に入れて処理する場合)は
oct=$(printf '%o\n' 0xfa) よりも速いはず
訂正
× oct=$(( ($hex >> 6) * 100 + ($hex >> 3 & 0x7) * 10 + ($hex & 0x7) ))
○ oct=$(( (0x$hex >> 6) * 100 + (0x$hex >> 3 & 0x7) * 10 + (0x$hex & 0x7) ))
720(1): デフォルトの名無しさん [sage] 2019/10/01(火) 19:37:54.80 ID:fust4gpU(3/9) AAS
>>719719(2): デフォルトの名無しさん [sage] 2019/10/01(火) 19:30:13.87 ID:8eIOCDAd(6/18) AAS
>>717
せっかくですが、ちょい本題とは違うかな。そりゃ () は...
なんで内部関数なのにサブシェルになんのかねん、他の言語的感覚ではという
まあ、内部関数だろうと、() と同じで $() もサブシェルになるということをおっしゃっりたいのでしょうけど
どうも
> なんで内部関数なのにサブシェルになんのかねん、
考え方が違う。
コマンド置換$( ) は「サブシェルを使用して実行する」という"仕様"なんだよ
なんでサブシェルになるのか?ではなく仕様でサブシェルにすると決まってる。
ただし別プロセスにするとは決まっていない。だから子プロセスとかいう既存の
名前ではなく、新たにサブシェルという用語を作った。
サブシェルの仕様としては、「サブシェル内で行った変数などの変更は呼び出し元には伝わらない。」
などがあるが、それを実現してるなら別の別プロセスでなくてもよい。
だけど別プロセスにするほうが実装が簡単だから多くのシェルではサブシェル=別プロセスになってる。
766(1): デフォルトの名無しさん [sage] 2019/10/02(水) 03:46:58.80 ID:DWeKr+Az(7/8) AAS
シェルスクリプトのreturnは終了ステータスを返すもので
これは他の言語の返り値ではないのは一目瞭然なんだがね
だからこそ $_ という変数(外部コマンドを呼び出した時の終了ステータス)で
アクセスできるわけだし
しらないならシェルスクリプトを勉強してくださいって言うしか無いな
なんならbashのドキュメント引用しようか?
return [n]
指定した返り値 n で関数を終了させます。 n を省略すると、返却ステータスは 関数内で最後に実行したコマン
ドの返却ステータスになります。 関数の外側で使われているが、 . (source) コマンドによるスクリプトの実行
中である場合、 シェルはそのスクリプトの実行を止め、 n またはスクリプト内で最後に実行されたコマンドの
終了ステータスを スクリプトの終了ステータスとして返します。 関数の外側で . によるスクリプトの実行中以
外に使われた場合、 返却ステータスは偽となります。 関数やスクリプトから実行が戻る前に、 RETURN トラッ
プ に設定されたコマンドが実行されます。
836: デフォルトの名無しさん [] 2019/10/04(金) 14:42:43.80 ID:hcjI0QEW(4/4) AAS
>>834そうか。まあそういうのもある。
909: デフォルトの名無しさん [sage] 2019/10/17(木) 17:43:27.80 ID:z1/RyPhF(10/10) AAS
あ、いや /usr/bin/getopts もあるにはあるが、libcのgetopt()実装が拡張されたから
それを使ってるBourne Shellでも使えるようになったのか
> getopts (Solaris enhanced)
> As a result, this new feature was also available in the built-in command getopts of the Bourne Shell.
969(1): デフォルトの名無しさん [sage] 2019/10/26(土) 10:56:36.80 ID:0I+FrAtF(2/8) AAS
>>968968(1): デフォルトの名無しさん [sage] 2019/10/26(土) 10:37:22.98 ID:3fttRo5u(1/9) AAS
え、まさか、
hoge && FLAG=$TRUE || FLAG=$FALSE
:
:
if [ "$FLAG" -eq "$TRUE" ] then ・・・
if [ "$FLAG" -eq "$FALSE" ] then ・・・
とか書くつもり・・・?
終了ステータスを真偽値で判断するのか
珍しいやつだなw
上下前次1-新書関写板覧索設栞歴
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 1.623s*