暇つぶし2chat UNIX
- 暇つぶし2ch514:名無しさん@お腹いっぱい。
21/11/21 22:35:21.95 .net
>>493
check() {
  set -- "$1"*
  [ -e "$1" ]
}
最短だとこうかな?
set -- "$1"* でシェルのglob展開を用いて位置パラメーターにセットする
ファイルが見つかった場合、そのファイル名が$1に入る
ファイルが見つからなかった場合、"$1"*という文字列が入る
まずありえないとは思うけど"$1*"という名前にアスタリスクが含まれた
ファイルがある可能性を考えると>>496よりも-eでチェックした方が良い
>>498で書いてあったかw
>>497
> >>493のls使ってる方が見た目なにしたいのかわかりやすいと思うけど
ls $f* は意味がない。シェルのglob展開されてからlsを実行してる。
つまりls file1 file2 file3 のようなものを実行してるだけ。
呼び出す前にすでにファイル一覧を取得してる
単に呼び出しコストが高い[ -e ] になってる

515:名無しさん@お腹いっぱい。
21/11/21 23:15:10.23 .net
見た目っ言ってるだろ
そんなコスト気にする必要もないから、見た目とそっちの方を重視してだよ

516:名無しさん@お腹いっぱい。
21/11/21 23:18:58.18 .net
他人の提案を直接ダメ出しして自分の知識自慢をしたがり、
マウント取るのが目的なやつは他のシェルスクリプトスレでも居るけど、
同じやつかな

517:名無しさん@お腹いっぱい。
21/11/21 23:19:33.52 .net
lsの見た目の何がいいの?
ファイルリストを取得しても何やってるのか意味わからんでしょ

518:名無しさん@お腹いっぱい。
21/11/21 23:20:38.15 .net
>>507
> 同じやつかな
違うけど、お前が知識不足でマウント取られたやつだってのはよくわかったよw

519:名無しさん@お腹いっぱい。
21/11/21 23:21:00.73 .net
lsはファイルがあるか確認するのに普通に使ってるだろ、手打ちで

520:名無しさん@お腹いっぱい。
21/11/21 23:22:25.30 .net
>>509
見た目って言ってる裏を読めないで決めつけられてもな
同じやつとしか思えないその短絡的なレス

521:名無しさん@お腹いっぱい。
21/11/21 23:31:25.93 .net
でたw
自分が説明できてないだけなのに
裏が読めてないと相手のせいにする
詐欺師の手段と同じ

522:名無しさん@お腹いっぱい。
21/11/21 23:34:45.43 .net
自分にある意味ダメ出しされたらイキリマ来るくせに。変なやつ
説明できないとか似たようなフレーズはあいつもすぐにしてたなあ
巣に帰れよw

523:名無しさん@お腹いっぱい。
21/11/21 23:40:47.87 .net
「裏を読めない」と言った時点で
自分で書いてないって言ってるのってわかってないのかな?
思い込み激しすぎるんだよな
例のPOSIX原理主義者みたいだw

524:名無しさん@お腹いっぱい。
21/11/21 23:46:30.79 .net
読めませんでしたと素直に言えよ
わざわざ見た目って言ってるのはなんなのかは、細かいこと言うなら、
また、そこまで食い下がるならそれぐらい裏読めよ
せめて、読めませんでしたと素直になれよ。他人にダメ出しばっかしてないで
自分にダメ出しされたらイキリまくるくせに、他人にダメ出しはするって、
マジでマウント取るのが目的でしかないだろう
マウント取るためだから素直には人の言うことは読めないから、
イキリまくることになるんだろうなと
そのしつこさはやはりなっていう
マウント取るためだからしつこく食い下がるんだろうなあ...

525:名無しさん@お腹いっぱい。
21/11/22 00:00:02.71 .net
書いてないものは読めません
アホすぎる

526:名無しさん@お腹いっぱい。
21/11/22 00:00:26.12 .net
POSIX原理主義者って本当みたいだなw

527:名無しさん@お腹いっぱい。
21/11/22 00:02:28.08 .net
書いてないものは読めません
って短絡的に言えちゃうのは確かにアホだな、それが攻撃的な人格のヤツがなら

528:名無しさん@お腹いっぱい。
21/11/22 00:08:40.31 .net
>>517
自らアホ晒してるだけだぞ
なんでPOSIX原理主義者に結びつけるのか意味わからん
もちろんあんな自ら手足縛るのは嫌いだ/必要ないし、イキってる姿勢はもっと嫌いだし
ホント短絡的だな。トンチンカンな決めつけばかりって何したいんだか

529:名無しさん@お腹いっぱい。
21/11/22 00:09:15.81 .net
説明不足を他人のせいにするのが流行ってるの?

530:名無しさん@お腹いっぱい。
21/11/22 00:10:39.73 .net
相手によるだろう

531:名無しさん@お腹いっぱい。
21/11/22 00:16:59.61 .net
>>519
> なんでPOSIX原理主義者に結びつけるのか意味わからん
そりゃPOSIX原理主義者に知識不足でマウント取られた恨みがあるから、というぐらいは読めるよねえ

532:名無しさん@お腹いっぱい。
21/11/22 00:18:57.19 .net
また思い込みで語ってるw

533:名無しさん@お腹いっぱい。
21/11/22 00:23:14.57 .net
>>522
イミフすぎな文で、読めないぞ
誰がPOSIX原理主義者なの?
裏読めないやつがPOSIX原理主義者ってことになる文だと思うけど、その文は
POSIX原理主義者って出てきたのは、>>514だぞ
>>514がPOSIX原理主義者?>>514のレスの相手であろう俺がPOSIX原理主義者??

534:名無しさん@お腹いっぱい。
21/11/22 00:29:52.48 .net
俺がPOSIX原理主義者だとしたいなら、
POSIX原理主義者のくせに知識不足でマウント取られた恨みがあるから
かな
だとしてもPOSIX原理主義者に結びつける説明にはなってないなあ
カオスだな。ここまでにしとこか

535:名無しさん@お腹いっぱい。
21/11/22 02:10:39.67 .net
>>524
× POSIX原理主義者
○ 例のPOSIX原理主義者
シェルスクリプトスレでは、意味が全然変わる。w

536:名無しさん@お腹いっぱい。
21/11/22 02:11:59.82 .net
>>524
510には「POSIX原理主義者」に知識不足でマウント取られた過去があって
恨みがあるから「POSIX原理主義者」という言葉を持ち出した
ってことでしょ
510がマウントとられてぐぬぬとなった時に、510には相手がPOSIX原理主義者のように思えたらしいというだけで
本当にPOSIX原理主義者かどうかさえ不明だし、誰がPOSIX原理主義者かなんてどうでもいい

537:名無しさん@お腹いっぱい。
21/11/22 02:13:47.43 .net
>>526
言語新作は病気だよ

538:名無しさん@お腹いっぱい。
21/11/22 03:28:05.45 .net
>>527
無理があるだろう

539:名無しさん@お腹いっぱい。
21/12/11 11:26:25.87 .net
fishについて質問です
fish_vi_key_bindingsを入力するとviモードに入りプロンプトの左にモードステイタスが表示されますが、
$XDG_CONFIG_HOME/fish/config.fish にfish_vi_key_bindingsを記入した場合はログイン後すぐにviモードか使えますがモードステイタスが表示されません
どうやったら表示出来ますか?

540:名無しさん@お腹いっぱい。
21/12/11 13:46:58.57 .net
fish_prompt

541:名無しさん@お腹いっぱい。
21/12/11 13:48:39.11 .net
fish_mode_prompt

542:名無しさん@お腹いっぱい。
21/12/11 13:49:12.15 .net
を、$XDG_CONFIG_HOME/fish/config.fish に書いてるんじゃないの

543:名無しさん@お腹いっぱい。
21/12/11 15:39:24.15 .net
>>533
どうもありがとうございます
それらは書かれていませんが、こう書かれてありましたのでコメントアウトしてみたらモードが表示されるようになりました
function hybrid_bindings --description "Vi-style bindings that inherit emacs-style bindings in all modes"
for mode in insert default visual
fish_default_key_bindings -M $mode
end
fish_vi_key_bindings --no-erase
end
set -g fish_key_bindings hybrid_bindings

544:名無しさん@お腹いっぱい。
21/12/11 15:48:57.02 .net
インサートモードの時にjjを押したらノーマルモードに戻りたくてfish_user_key_bindingsに以下のように書いたらまたモードが消えました
function fish_user_key_bindings
fish_vi_key_bindings
bind -M insert -m default jj backward-char force-repaint
end

545:名無しさん@お腹いっぱい。
22/02/26 23:09:30.57 .net
端末では正常な
$declare -i w0=180 w1=30 w2=20 w3=50 ; w3=w3+(w0-w1)/10-1 ; echo $w3
ですが、shファイルで使うとなぜかエラーになります。(w? の数値は違います)
予期しないトークン `(' 周辺に構文エラーがあります w3=w3+(w0-w1)/10-1
ですが、分割すると通ります。
w2=(w0-w1)/10 ; w3=w3+w2-1
理由をご存知でしたら教えて下さい。
GNU bash, バージョン 5.0.17(1)

546:名無しさん@お腹いっぱい。
22/02/27 07:10:41.81 .net
>>536
理由はよく分からないけど extglob が on ならエラーにならないね

547:名無しさん@お腹いっぱい。
22/02/27 09:42:18.76 .net
>>536
シバンでググれ

548:名無しさん@お腹いっぱい。
22/02/27 19:45:20.55 .net
なんかbashの仕様のグダグダなところを踏んだって感じだな。
エスケープされていない生の ( は基本的にwordの途中に出てこないので、
w3+( ときたところでsyntax errorになる。
ところが、shopt -s extglob しておくと、
+(hoge|fuga) みたいなパターンマッチを許すため、
w3+( をエラー扱いできなくなり、全部まとめて数式としてパースしてくれる。
*( も可。しかし、/( と -( は不可。
おとなしく $(( )) を使っておくのが吉。

549:名無しさん@お腹いっぱい。
22/02/28 06:45:21.62 .net
自分が理解できないからって
bashのせいにするのは恥ずかしい行為

550:名無しさん@お腹いっぱい。
22/03/08 18:54:54.29 .net
grepとかで使える正規表現の「\s」は、manページのどこに書いてますか?
「\b」「\w」は、man 1 grepに書いてあるけど、「\s」は見当たらない。

551:名無しさん@お腹いっぱい。
22/03/10 22:56:33.04 .net
declare -i n; n="3/2" は通るのに、n="1.5" が通らないのはなぜだろ

552:名無しさん@お腹いっぱい。
22/03/10 23:31:05.02 .net
エラーで出ている通り、
リテラルもintegerしかでintegerでは.(5) というのは数値はあり得ない
数値の一部ではないので算術演算子とみるが、算術演算子としてもそんなのない
てとこかな

553:名無しさん@お腹いっぱい。
22/03/10 23:46:00.98 .net
リテラル じゃなく、右辺中 か
>>541
manには無さげかな。manには無いがPOSIXのドキュメントには詳しくある

554:名無しさん@お腹いっぱい。
22/03/11 00:08:44.90 .net
>>544,541
いや、POSIXのドキュメントには無いな
個々の実装での�


555:Cまぐれmanに記載のないのは記載漏れかな 使えるかどうかは試してみなければわからない、使えるのも多いだろうけど 自分で試して使えるなら使うなら、 https://en.wikipedia.org/wiki/Regular_expression https://www.boost.org/doc/libs/1_71_0/libs/regex/doc/html/boost_regex/syntax/basic_extended.html とか、manではなくPOSIXのでもなく他の資料を当たるしかないかな



556:名無しさん@お腹いっぱい。
22/03/11 00:14:53.27 .net
ああ、決まり事を規定する団体が規定してるドキュメントでは ユニコードコンソーシアム のがある
URLリンク(unicode.org)
これを実装していればだが

557:名無しさん@お腹いっぱい。
22/03/11 12:03:17.08 .net
>>544-546
やっぱり記載漏れかな?
理想としては、man 7 regexくらいに全仕様がまとまっててほしいんだけどな。
個人的には、慣れで「\d」を使ってしまって、よく標準コマンド系でガッカリするんだよね。。。

558:名無しさん@お腹いっぱい。
22/03/11 12:17:43.20 .net
>>547
他の環境は知らんがGNUのなら仕様はinfoを読めというスタンスだぞ

559:名無しさん@お腹いっぱい。
22/03/11 16:00:00.94 .net
>>548
たしかにinfo grepには「\s」が書いてあるな。
でもinfo bashには書かれてなくて、man 3 regexに回されてるような。
結局はinfoでも解決しなさそうな気がするんだけど、違う?
info regexだとlibc関数のことが表示されるし、たとえばman 7 regexに相当するinfoは存在しないんでは?
まあ、man7セクションに入るような内容はGNUに関係なさそうだとは思う。

560:あぼーん
NG NG.net
あぼーん

561:名無しさん@お腹いっぱい。
22/05/12 22:19:26.11 .net
シェルスクリプトの [ -a (AND) と -o (OR) ] は非推奨だかんね
URLリンク(qiita.com)
には -a や -o ではなく && と || を使うように書かれています。
否定の場合、 [ $a != $b ] と [ ! $a = $b ] はどちらを使ってもいいのでしょうか?

562:名無しさん@お腹いっぱい。
22/05/13 01:22:03.48 .net
>>551
知らなかった。
勉強になった

563:名無しさん@お腹いっぱい。
22/05/13 16:01:08.55 .net
>>551
いいんじゃね?
ただ [ "$a" != "$b" ] や [ ! "$a" = "$b" ] ってしないとだめだけど
あと ! [ "$a" = "$b" ] でもよさそう

564:名無しさん@お腹いっぱい。
22/05/14 23:52:35.51 .net
昔のFreeBSDでは
[ -n abc -lt 5 ]
みたいのが通った記憶
[ gnu 8.30で今試すとextra argument '['
と怒られる
手元のunix magazineコレクション(1997-2000)にもこの用法が述べられてるが、まあ要らん機能だわな

565:名無しさん@お腹いっぱい。
22/05/15 03:02:55.37 .net
シェルスクリプトって息が長いから
そういう使うべきじゃないものも残っていて困るね
さすがに古すぎる機能は互換性切り捨てた方が良くない?

566:名無しさん@お腹いっぱい。
22/05/15 12:09:01.91 .net
whileの、条件が偽でも一度はループって仕様が不思議

567:名無しさん@お腹いっぱい。
22/05/15 15:51:51.12 .net
そんな仕様なんて無いし
シェルスクリプトに文句言ってるやつの8割は
自分の知らない言語を勉強せずに文句言ってるだけなんだなってわかる

568:名無しさん@お腹いっぱい。
22/05/15 17:54:30.30 .net
do while をシェルスクリプトでどう実現するかって話もWeb上であるけど、
それなんの話ってことになるわな

569:名無しさん@お腹いっぱい。
22/05/23 13:54:54.31 .net
ぐぐっても見つけられないんだけど
functionの中のlocal変数に整数属性付与って出来ないのかな?

570:名無しさん@お腹いっぱい。
22/05/23 23:44:52.02 .net
bashの話だとして普通に整数属性付いてるぞ?
bash -c 'v=1+2; foo() { local v; declare -i v; v=3+4; echo $v; }; foo; echo $v'
7
1+2
というかdeclareで-gをつけない限り
デフォルトでlocalになるだろ?

571:名無しさん@お腹いっぱい。
22/05/24 01:33:27.87 .net
ぐぐるな!
黙って
man sh

572:名無しさん@お腹いっぱい。
22/05/24 17:18:15.58 .net
>>560
ありがとうございます。
declare はスクリプトファイルの先頭でしか使ったことがなかったのでループ内(や関数)でも使えるとは知りませんでした。
なるほど、それならデフォルトlocalですね。
>>561
使い方の例を見て学ぶタイプなので^^

573:名無しさん@お腹いっぱい。
22/05/25 00:13:58.24 .net
3つの引数を必要とする関数があります。
x=$1 y=$2 ANS=$3の絶対値
$3が正の場合はxを、負の場合はyを増減し、xとyとで算出される結果がANSになった時のxまたはyを返します。
x=a[0] y=a[1]とし、最初に$3の符号で添字を0または1に設定することでループ内での場合分けを減らしたいと思います。
質問:整数配列の宣言はできますか?

574:名無しさん@お腹いっぱい。
22/05/25 01:04:48.10 .net
>>562
内部的にはlocalとかreadonlyとか変数に属性つけるやつは
内部的にはdeclareかtypesetの別名

575:名無しさん@お腹いっぱい。
22/05/25 01:06:31.16 .net
>>563
昨日、近所の吉野家行ったんです。吉野家。
そしたらなんか人がめちゃくちゃいっぱいで座れないんです。
で、よく見たらなんか垂れ幕下がってて、150円引き、とか書いてあるんです。
もうね、アホかと。馬鹿かと。
お前らな、150円引き如きで普段来てない吉野家に来てんじゃねーよ、ボケが。
150円だよ、150円。
なんか親子連れとかもいるし。一家4人で吉野家か。おめでてーな。
よーしパパ特盛頼んじゃうぞー、とか言ってるの。もう見てらんない。
お前らな、150円やるからその席空けろと。
吉野家ってのはな、もっと殺伐としてるべきなんだよ。
Uの字テーブルの向かいに座った奴といつ喧嘩が始まってもおかしくない、
刺すか刺されるか、そんな雰囲気がいいんじゃねーか。女子供は、すっこんでろ。
で、やっと座れたかと思ったら、隣の奴が、大盛つゆだくで、とか言ってるんです。
そこでまたぶち切れですよ。
あのな、つゆだくなんてきょうび流行んねーんだよ。ボケが。
得意げな顔して何が、つゆだくで、だ。
お前は本当につゆだくを食いたいのかと問いたい。問い詰めたい。小1時間問い詰めたい。
お前、つゆだくって言いたいだけちゃうんかと。
吉野家通の俺から言わせてもらえば今、吉野家通の間での最新流行はやっぱり、
ねぎだく、これだね。
大盛りねぎだくギョク。これが通の頼み方。
ねぎだくってのはねぎが多めに入ってる。そん代わり肉が少なめ。これ。
で、それに大盛りギョク(玉子)。これ最強。
しかしこれを頼むと次から店員にマークされるという危険も伴う、諸刃の剣。
素人にはお薦め出来ない。
まあお前らド素人は、牛鮭定食でも食ってなさいってこった。
答え:できまsん

576:名無しさん@お腹いっぱい。
22/05/31 05:07:04.68 .net
ありがとうございます。
色々やってみたら、配列として宣言しなくても使えるようです。
declare -i i a[0] a[1] ; a[0]=3 ; a[1]=6 ; i=1 ; a[$i]=${a[$i]}+1 ; echo a=${a[$i]}
a=7

577:名無しさん@お腹いっぱい。
22/07/31 09:46:48.93 .net
ちょっとスレチかもですが、
for filename in *
とかでカレントディレクトリにあるファイル名を得る場合、どんな順番なのでしょうか?
ディレクトリエントリ順とか、ファイル名順とか。

578:名無しさん@お腹いっぱい。
22/07/31 11:17:31.68 .net
ある程度ファイルがあるところで
echo *
すればわかる

579:名無しさん@お腹いっぱい。
22/07/31 12:25:43.85 .net
>>567
お使いのシェルのマニュアル見ろってさ
URLリンク(detail.chiebukuro.yahoo.co.jp)

580:名無しさん@お腹いっぱい。
22/07/31 17:53:21.88 .net
>>567
GLOB
POSIXに規定されてる
The glob() function shall store the number of matched pathnames into pglob->gl_pathc and a pointer to a list of pointers to pathnames into pglob->gl_pathv. The pathnames shall be in sort order as defined by the current setting of the LC_COLLATE category
名前順

581:名無しさん@お腹いっぱい。
22/07/31 17:56:03.40 .net
>>570,567
SORTしないというオプションもあるが、その場合には順番の決まりなんてないということになるね

582:名無しさん@お腹いっぱい。
22/07/31 19:31:44.03 .net
質問者の使ってるシェルはposix準拠なのか

583:名無しさん@お腹いっぱい。
22/07/31 19:47:57.19 .net
>>572
> □お約束
> ・特記なき場合はBourne Shell(/bin/sh)もしくはPOSIX準拠の互換シェルがデフォルトです。

584:名無しさん@お腹いっぱい。
22/08/02 17:31:23 .net
POSIX準拠が当たり前、
POSIXにはない/POSIXで足らない勝手に拡張部分で独自が当たり前
って当たり前がわからないんだろな

拡張するにしてもPOSIXをベース+αって馬鹿でもわかりそうなもんだが
機能的に必要最低限のPOSIXを無視する利益なんてないだろに

585:名無しさん@お腹いっぱい。
22/08/02 19:09:16.74 .net
POSIXを無視する利益は互換性でしょ?
今までの動きを変えたらだめ

586:名無しさん@お腹いっぱい。
22/08/02 20:31:00.79 .net
>POSIXを無視する利益は互換性
www
>今までの動きを変えたらだめ
前段からそれになるとか無茶苦茶
POSIXの経緯、POSIXは何をベースに作られたか勉強してきてから寝言言うんだよ

587:名無しさん@お腹いっぱい。
22/08/03 09:45:22.85 .net
皆様ありがとうございました。シェルはbashです。
名前順的に最後のファイル名を得るには
for filename in * ; do
:
done
とするしかないようですね。
でもKDEのDolphineの自然なソート(ゼロパディング分の0を無視)のようなオプションは欲しいかも

588:名無しさん@お腹いっぱい。
22/08/03 14:26:27.63 .net
>>577
> 名前順的に最後のファイル名を得るには
普通に
ls -r | head -1
でよくね?

589:名無しさん@お腹いっぱい。
22/08/03 20:32:58.41 .net
>>576
何をベースにってBSDベースでしょ?
SolarisとかはSystemVベースだからtrコマンドの挙動が違う
互換性を重視してPOSIXを無視してる

590:名無しさん@お腹いっぱい。
22/08/03 20:34:34.24 .net
URLリンク(qiita.com)
> POSIXに準拠してないSystem V実装が悪いと言ってしまえばそれまでなのだが、
> 歴史の上ではPOSIXよりも早いのでそれをいうのもまた理不尽というもの。ではどうすればいいか。

591:名無しさん@お腹いっぱい。
22/08/04 09:47:52.75 .net
>>576
おら。ちゃんとPOSIXの経緯調べてきたか?
黙ってないでなんとかいえや

592:名無しさん@お腹いっぱい。
22/08/05 10:23:52.72 .net
>>577
sh ではできるだけパイプで処理することを考えるんだ
もちろん for, while などが必要な局面はあるが
パイプで済むなら速くて簡潔でフィルターとして組み合わせられる

593:名無しさん@お腹いっぱい。
22/08/05 10:46:42.12 .net
>>582
ファイル名に改行が入る場合はどうすればいいのでしょうか?

594:名無しさん@お腹いっぱい。
22/08/08 18:30:05.02 .net
自分ならまずそういうアホなファイル名を変更するが
権限がなければまあ
find -print0 | xargs -0
くらいだな

595:名無しさん@お腹いっぱい。
22/08/08 21:06:49.38 .net
>>584
POSIX準拠じゃないので
FreeBSDで動きませんw

596:名無しさん@お腹いっぱい。
22/08/14 20:39:40.32 .net
POSIX準拠じゃなくてもFreeBSDで動くけどな
POSIXにないのでも、ツール間で合わせ合う、どっちかがどっちかに似せるというのは普通にあるしな

597:名無しさん@お腹いっぱい。
22/08/14 21:19:42.49 .net
POSIXにないオプションは使用禁止だ
そんなものを使うと持続性がなくなる
なんらかの理由で別のOSに変更になった時
システムは動かなくなってデータはただのゴミになる
何度言えば理解できるのか

598:名無しさん@お腹いっぱい。
22/08/15 12:57:39.48 .net
はいはい、原理主義ごくろうさん
使ってる本人次第でしかないのに押し付けとかホント原理主義者は

599:名無しさん@お腹いっぱい。
22/08/15 13:03:07.61 .net
原理主義者は自惚れてるけど無知さがだだ漏れる
無知さを隠す誤魔化すためのマウント取りでしかない

600:名無しさん@お腹いっぱい。
22/08/15 13:26:13.07 .net
リッチー大佐はC言語も使える
ただし分割コンパイルやmakeといった高度な機能は使わない
そんなものはなくてもシェルスクリプトでmake.shを作れば良いからだ

601:名無しさん@お腹いっぱい。
22/08/15 13:28:32.48 .net
>>585
pkg install findutils

602:名無しさん@お腹いっぱい。
22/08/15 14:25:12.28 .net
それ入れなくてもFreeBSDのfindで可能だけどな
がっつりGNU依存のにしても、それ入れる+ちょっとパス修正だけだわな

603:名無しさん@お腹いっぱい。
22/08/15 16:04:55.82 .net
BSDのfindなら
find 場所 -print0 | xargs -0

604:名無しさん@お腹いっぱい。
22/08/15 20:36:03.11 .net
持続性なら、もはやPOSIXよりも、Linuxのほうがいいのでは。

605:名無しさん@お腹いっぱい。
22/08/16 12:18:54.66 .net
posixってソフトウェア規格でしょ?

606:名無しさん@お腹いっぱい。
22/08/16 12:28:09.90 .net
ソフトウェア規格って?
公式ページでも見れば?

607:名無しさん@お腹いっぱい。
22/09/19 12:12:56.52 .net
bashの関数で文字列を返したい場合、その関数名を文字列名称に使うことは仕様的に可能ですか?
function kotae () {
kotae=$1$2
}
kotae ab cd
echo $kotae

608:名無しさん@お腹いっぱい。
22/09/23 09:54:01.90 .net
>>597
関数と変数の名前空間は別なので別に構わない、そして宣言(declare)してなければ変数concはグローバル
ややこしいのでそういう使い方のおすすめはしない

609:名無しさん@お腹いっぱい。
22/09/23 09:55:09.11 .net
concはkotaeの間違い
頭の中で勝手に命名しちゃった

610:名無しさん@お腹いっぱい。
22/09/24 14:46:59.72 .net
>>597
そのようなことをしたい場合はこうする
function kotae () {
printf -v $1 "%s" $2$3
}
kotae ret ab cd
echo $ret

611:名無しさん@お腹いっぱい。
22/10/28 02:25:37.28 .net
bash 5.2.2(1)で最初の!だけ全角の
echo "abc!? xyz!"
は通るのに、半角にすると
echo "abcecho "abc!? xyz!"
>
になってしまいます。
一対の"で通すにはどうすればいいのでしょうか?
>>598-600
ありがとうございます。
printfのvオプションは初めて知りました。

612:名無しさん@お腹いっぱい。
22/10/28 13:13:38.41 .net
ヒストリ機能
知らない/活用してないならオフにしておくべき
対話モードでしか機能しないから切っても特に問題はない

613:名無しさん@お腹いっぱい。
22/10/29 10:43:22.22 .net
バックスラッシュをつけてエスケープ。

614:名無しさん@お腹いっぱい。
22/11/06 16:47:34.57 .net
恥を忍んで質問させて下さい:
Larry Wallせんせーが書いたmetaconfigが普及せずに、同じ機能を果たす、
Autoconf/Autotoolsが普及した理由って何でしょう?
1)Perlよりm4の方が普及してた(どっちも文法はアレだけど)
2)というかPerl嫌いな人が少なくなかった
3)そのほか(開発モデルとか)
...imakeって何だっけ?

615:名無しさん@お腹いっぱい。
22/11/06 18:24:19.31 .net
Autoconf/AutotoolsはGNUだからじゃね?しらんけど

616:名無しさん@お腹いっぱい。
22/11/07 01:26:02.31 .net
rsync -avR -e ssh ...
rsync -avR -e ssh ...
このように6行以上書くとエラーになるんですがどうしてでしょう?
ssh: connect to host xxxx: Connection refused
rsync: connection unexpectedly closed (0 bytes received so far) [sender]
rsync error: unexplained error (code 255) at io.c(228) [sender=3.2.3]

617:名無しさん@お腹いっぱい。
22/11/07 06:20:59.25 .net
6行以上書いたからじゃね?

618:名無しさん@お腹いっぱい。
22/11/07 07:38:39.12 .net
>>606
クライアントからの接続要求の処理中に次の接続要求が来たら待たせるようになっててそのバッファが5個だからそれ以上に次々と接続要求きたらConnection refusedを返すようになってる
少し時間を空ければ大丈夫なはず
てか、サーバーは何?

619:602
22/11/07 11:40:12.51 .net
>>608
ありがとうございます。そうでしたか。
コマンドの内容と関係無さそうだったので迷いました。
接続先のサーバーは自宅のraspiです。

620:名無しさん@お腹いっぱい。
22/11/08 09:01:57.74 .net
もしかしてファイル転送を多重化しようとしてるのかな そういうオプションがあったような気がするけどね rsync

621:名無しさん@お腹いっぱい。
22/11/08 23:15:42.53 .net
はい、ぶたがみーるー
まあ、ここにも俺がいるわけですけどねw

622:名無しさん@お腹いっぱい。
23/03/27 06:41:34.11 .net
バックしまーす

623:名無しさん@お腹いっぱい。
23/06/18 23:35:36.05 .net
function YesNo {
local yn
while true; do
read -p " [Yes/No" "$1" "]: " yn
case $yn in
[Yy]*) return 0 ;;
[Nn]*) return 1 ;;
[Ee]*) if [ ! "$1" = "" ]; then return 2; fi ;;
esac
done
}

#main
YesNo ":いいえ /Else:その他"
echo $?
exit

実行すると、read: `:いいえ /Else:その他': 有効な識別子ではありません
とエラーになるのですが、どうすればいいでしょうか?

624:名無しさん@お腹いっぱい。
23/06/19 06:14:08.74 .net
-p に渡っているのは " [Yes/No" だけで、残りの "$1" と "]: " は yn と同じく変数名として解釈されている

read -p " [Yes/No $1 ]: " yn

625:名無しさん@お腹いっぱい。
23/06/23 17:18:03.40 .net
テスト

626:名無しさん@お腹いっぱい。
23/08/23 21:31:25.96 .net
これってどうしてそうなのだろう?

627:名無しさん@お腹いっぱい。
23/08/27 18:57:22.73 .net
readコマンドの引数にダブルクォートを使ってるからだぬ
だから>>614氏が指摘しているコトになってるぬ

628:名無しさん@お腹いっぱい。
24/02/20 08:47:58.81 .net
先にBを算出することもなく変数の追加もなしで処理2を1箇所にすることは可能でしょうか?
if [ A ]; then
Bを算出
if [ B ]; then
 処理1
else
 処理2
fi
処理2
fi

629:名無しさん@お腹いっぱい。
24/02/20 14:15:04.07 .net
2度目のエルスを書かなければいいだけじゃなくて?

630:名無しさん@お腹いっぱい。
24/02/20 17:32:39.42 .net
>>619
「処理2」は2度処理される必要があるのかもしれん。例えば、ステータスを1 upするような。
出題者はおそらくelse節を冗長処理として、1度きりの処理の意味で「1箇所にする」と要件を定義したのだろう。
が、現実にこんなアバウト野郎のかもす空気を読んでウカウカとelse節を削ると、分かりにくいバグになったりする。
なので、問題を正確に記述しろ糞ボケと回答すべきだと思う。

631:名無しさん@お腹いっぱい。
24/02/22 06:05:52.23 .net
>>618
else 足りなくね
処理2を1度または2度実行するのに、1箇所にしたいとかイミフ
!Aだったら処理2をする つもりなら、そのまま書けばいいだけだな。シェルスクリプトならw
Bを前もって算出できるなら、[ A -a B ] って本人も分かってるだろうが、Bを算出することもなくでも、そのまま書こうと思えばかけるわな、 [ A -a { Bを算出; B; } ] 風に

632:名無しさん@お腹いっぱい。
24/02/22 18:42:19.24 .net
{ ifを何重にもネストしたブロック } || 処理2
みたいなのでも

633:名無しさん@お腹いっぱい。
24/03/14 17:20:13.74 .net
while ...do
処理1
done <<=LIST=
リスト1
=LIST=
while ...do
処理2
done <<=LIST=
リスト1
=LIST=
てののリスト1を一つにできんべか。ただし、リスト1全てに対し処理1をし終えてから処理2を行なう必要があるので、
while ...do
処理1
処理2
done <<=LIST=
ではあかん。

634:名無しさん@お腹いっぱい。
24/03/14 18:05:33.59 .net
ヒアドキュメントの中で変数を展開できます。
LIST_CONTENT="リスト1
...
"
while read s; do
printf '%s\n' "${s}"
done <<LIST
${LIST_CONTENT}"
LIST

635:過去ログ ★
[過去ログ]
■ このスレッドは過去ログ倉庫に格納されています


最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch