シェルスクリプト総合 その34

■ このスレッドは過去ログ倉庫に格納されています
2020/08/21(金) 15:17:55.64ID:mArnj/tT
シェルスクリプトに関する総合スレッドです。

全般
・荒しは無視しましょう。
・丁寧な姿勢を心掛けましょう。
・ネチケット(死語)を意識しましょう。
・「○○(他の言語)でいいやん」は禁止。他のスレに行ってください。

シェルスクリプト総合 その33
https://mevius.5ch.net/test/read.cgi/tech/1584893550/
2020/09/08(火) 11:14:25.07ID:ymgasiE/
>>46
なんとなく
"... `$1`"のあたりが原因なような気がする。
この状態だと引数の実行結果が空白区切りでb.shに渡される。

二番目の処理のエラーは見せられない感じ?
48デフォルトの名無しさん
垢版 |
2020/09/08(火) 11:52:32.28ID:4xL00uJx
>>47
[root@test-srv test]# ll
合計 8
-rwxrwxrwx 1 root root 216 9月 8 11:46 a.sh
-rwxrwxrwx 1 postgres postgres 115 9月 8 11:44 b.sh
[root@test-srv test]# cat a.sh
#!/bin/bash
echo "a.shの処理を開始します。"
echo "a.shのテスト出力、引数は${1}です。"
echo "b.shを実行します"
su - postgres `/home/postgres/work/work/test/b.sh ${1}`
echo "a.shを終了します"
exit 0;
[root@test-srv test]# cat b.sh
#!/bin/bash
echo "b.shの引数1は${1}です。"
echo "b.shのテスト出力です。"
echo "b.shのテスト出力です。"
exit 0;
[root@test-srv test]# ./a.sh test
a.shの処理を開始します。
a.shのテスト出力、引数はtestです。
b.shを実行します
-bash: b.shの引数1はtestです。: そのようなファイルやディレクトリはありません
a.shを終了します
[root@test-srv test]#
少し処理を変えた結果もこんな下の感じです。
[root@test-srv test]# ./a.sh test
テスト: 引数1はtestです: command not found
これはテストです
2020/09/08(火) 12:32:53.69ID:o44vEJ9h
`/home/postgres/work/work/test/b.sh ${1}`

` じゃん

su - postgres b.shの引数1はtestです。

をしようとしてるじゃん、
-bash: b.shの引数1はtestです。: そのようなファイルやディレクトリはありません
のメッセージの通りじゃん?
2020/09/08(火) 13:38:46.77ID:wSlh5XRm
いったい何がしたいんや?
バッククォートは何のため?
51デフォルトの名無しさん
垢版 |
2020/09/08(火) 13:41:35.55ID:4xL00uJx
>>49
すみませんが、知識が貧しいので
詳しく教えてください・・・
52デフォルトの名無しさん
垢版 |
2020/09/08(火) 13:44:08.25ID:4xL00uJx
>>50
単純にrootでa.shを叩いたら
postgresユーザでb.shが引数付きで呼ばれるようにしたいて感じです。

その処理がいまいちうまく組めないのです・・・
2020/09/08(火) 13:47:28.39ID:o44vEJ9h
` で囲んだのは、その時点でそれが実行されてその出力に置き換えられる。$() はほぼ等価
su - postgres `/home/postgres/work/work/test/b.sh ${1}`

su - postgres b.shの引数1はtestです。
をやろうとしてる(b.shの引数1はtestです。に b.shのテスト出力です。もあるけどな)

だから、
-bash: b.shの引数1はtestです。: そのようなファイルやディレクトリはありません
というメッセージなんだよ
su - postgres b.shの引数1はtestです。
をしようとしてるんだから

やりたいのは、
su - postgres `/home/postgres/work/work/test/b.sh ${1}`
ではなくて、
su - postgres "/home/postgres/work/work/test/b.sh ${1}"
とかだろう
54デフォルトの名無しさん
垢版 |
2020/09/08(火) 13:58:43.10ID:4xL00uJx
>>53
出来ました!
su - postgres -c "/home/postgres/work/work/test/b.sh ${1}"
という形でした。
ありがとうございました!
2020/09/08(火) 14:04:44.26ID:o44vEJ9h
ちゃんとメッセージ見ような。だいたいにおいて正しく問題点が書いてあるんだからw
2020/09/08(火) 15:16:17.47ID:wSlh5XRm
>>54
参考までに聞いてみたいが、なぜバッククォートを使おうと思ったのか?
クォートならどれでも同じだと思った?

>>55
バッククォートの機能を知らずに使うと、エラーメッセージを見てもわからんやろな。
2020/09/08(火) 15:37:36.08ID:o44vEJ9h
だが、typoでもよくみるメッセージだからな
それを実行しようとしてる、なぜなんだぜぐらいから始めないとな
2020/09/08(火) 15:59:34.51ID:7o8rcsWh
ブログはクォート関係はよく文字化けする
2020/09/08(火) 17:39:44.03ID:ymgasiE/
cshやAndroidにも対応した上で
POSIXに準拠したシェルスクリプトの書き方
(cshの場合はshで起動し直すらしい)
https://togetter.com/li/1077808?page=5
ここまでやる意義は不明w
2020/09/08(火) 20:25:26.31ID:7o8rcsWh
>>59
それは読んだことがあるが
どうももやもやしている

どういう環境でそれが必要なのかが書いてないからかな?
Androidといわれてもー
バージョンわからないしー
検証環境用意できないしーw

読んでて思うのはtogetterはツイートをまとめるだけなので
検証内容をまとめるには適してねーわ
2020/09/09(水) 10:55:40.97ID:L9ofENhq
>>60
同意。
「結局なにが分かったのか」
「解決方法はどうだったのか」
っていう,一番重要な情報もめちゃめちゃ
みにくいところにある。

しかも,まとめ主は
「あとで記事にする」と言っているのに
その後音沙汰がないし
アカウント乗り換えてる模様。
怪しすぎる。
2020/09/09(水) 11:00:38.40ID:ShrkmEVF
>>61
あとなんかシェルによってシバンの扱いが違うように書いてるように見えるんだけど
シバンを解釈するのてOSだよね?
他の言語から起動することもあるんだから
シェルはOSに丸投げしてるだけ
2020/09/09(水) 11:05:11.17ID:ShrkmEVF
だれかもうずばっと シバンはちゃんと書きましょう。
shを使うなら #!/bin/sh です。このパスがない環境はもうありません
って言ってくれないかな?w

真偽不明でタイトルだけ残ってて困る
2020/09/09(水) 11:54:49.47ID:L9ofENhq
>>63
ちょっとつっかかるけど
「このパスがない環境はもうありません」
これも根拠なくないか?

POSIXでは定められていない訳だし,
Solarisだと/bin/shはめちゃめちゃ古い。
POSIX shは/usr/xpg4/bin/shにある。
2020/09/09(水) 12:45:45.54ID:SvwSYfrG
#!/usr/bin/env sh
2020/09/09(水) 13:06:06.44ID:L9ofENhq
>>65
より非可搬。
詳細は前スレ参照。
2020/09/09(水) 17:24:48.34ID:QPd8QPwA
たまたまSolarisの環境があるから調べてみたが、

> Solarisだと/bin/shはめちゃめちゃ古い。
これはSolaris 10以前の話。古いというかPOSIX以前のBourne Shellだな。
これがSolaris 11ではkshに変わっている。

それからシステムの初期設定PATHと
getconf PATHは必ずしも同じではない

Solarisのシステムの初期設定PATHは/usr/sbin:/usr/binなんだが互換性上の理由(?)で
POSIXに準拠してない可能性があるコマンドが入っていると考えて良さそう
getconfはPOSIX準拠のコマンドということもあり、getconf PATHもPOSIX準拠のためのPATHを返す
例えば /usr/xpg4/bin/ が優先されている。ただし /usr/sbin は入ってない。Linuxでも/bin:/usr/binしか返ってこないな
だから PATH=$(getconf PATH) なんかしてしまうと fdisk が使えなくなったw
ちなみに /bin はどちらのPATHにも入ってない

getconf PATHをどう使うかもOS依存な気がするけど、Togetterまとめに書いてあるように
PATH="$(command -p getconf PATH):$PATH"
こうすることで、標準を壊すことなくPOSIX準拠に近くするという意味になるんだろう
ちなみにだけどcommandの-pオプションは古いzsh(たしか4.0あたり)で使えなかったりするけどなw

個人的にはgetconfがない環境があるのは知っていたので、そこは何も不思議はない
Togetterまとめに書いてあるPATHの初期化方法は何をやりたいのかよくわからんw
なんつーか一行にしようとして意味不明にしてるとしか思えんな。こんなんでいいやろ?

default_path="$(command -p getconf PATH 2>/dev/null ||:)"
[ "$default_path" ] && PATH="$default_path:$PATH"
2020/09/09(水) 17:25:20.59ID:QPd8QPwA
↑でこれはシバンがないほうがいいかどうかとは全く関係ない話
まぜるなや
2020/09/09(水) 18:30:55.68ID:COY4N7BF
宇宙刑事シバン
2020/09/09(水) 18:57:01.22ID:L9ofENhq
>>67
Solarisで
$ getconf PATH
するとPOSIX準拠の命令が優先されるような
設定が返ってくるのな

勉強になった。さんきゅ〜
2020/09/09(水) 18:59:49.28ID:L9ofENhq
>>67
ちなみに棘でもzshのcommand -p非対応については
触れられてたな。

あきらめてhash使ってたが。
2020/09/10(木) 02:57:03.19ID:wmlkkGXD
>>71
command -p (もしくはただのcommand)って
シェルで微妙に動作が違うんだよな

ちゃんとまとめてないからきっちりとは言えんけど
例えば dash や ksh だと command -p printf --help は
ビルトインコマンドが実行される

zshだと外部コマンド
zsh で command -p : がエラーになるのはそのせい
2020/09/10(木) 03:02:01.02ID:wmlkkGXD
なんで昔の人って

command ・・・ 外部コマンドを実行する
builtin ・・・ ビルトインコマンドを実行する
function ・・・ シェル関数を実行する

みたいに全部作ろうと思わなかったんだろうな?
ユースケースを思いつかなかったということなんかな
2020/09/10(木) 03:19:24.10ID:Imxe+iF3
zsh
% type command
command is a shell builtin

https://linux.die.net/man/1/zshbuiltins
command [ -pvV ] simple command
The simple command argument is taken as an external command instead of a function or builtin and is executed. If the POSIX_BUILTINS option is set, builtins will also be executed but certain special properties of them are suppressed. The -p flag causes a default path to be searched instead of that in $path. With the -v flag, command is similar to whence and with -V, it is equivalent to whence -v.
See also the section 'Precommand Modifiers'.
2020/09/10(木) 04:00:38.67ID:MVNZ6OMc
zshにしたら今まで使ってたbashがぶっ壊れることって結構ありますか?
2020/09/10(木) 05:24:13.89ID:krA4WMn4
bashがぶっ壊れるって何?
両方入れるだけでしょ?

bash消してzsh入れるっていうのならぶっ壊れる可能性が高い
もしくは最初からbashが入ってない(必要ない)システムを使うとかね
例えばdashを採用しているdebian/ubuntuとか

そういうシステムでもdashを消してzshにしたらぶっ壊れる
zshをPOSIXモードで実行すればワンチャンあるかもしれんけど
2020/09/10(木) 08:23:53.97ID:gaq4bikN
bash用スクリプトはzshで動かすことを考えて作っていない限り動かない
sh用スクリプトであってもzshでは動かない可能性がある
2020/09/10(木) 09:30:12.19ID:KfHzrxU8
カタリナにしてからmacのターミナル起動するたびに出てくる
`chsh -s /bin/zsh`って実行したらbash使えなくなるよね?
79デフォルトの名無しさん
垢版 |
2020/09/10(木) 13:51:29.36ID:a+RPoaYl
>>73
zshを基準に見ているからそうなる。
80デフォルトの名無しさん
垢版 |
2020/09/10(木) 13:53:05.81ID:a+RPoaYl
シェルとコマンドの関係はOS依存たぞ
2020/09/10(木) 14:42:26.26ID:aa4WTOXX
>>79
意味不

>>80
意味不w
2020/09/10(木) 14:47:37.11ID:aa4WTOXX
>>78
ならない。
macは最初からbashとzshの両方がインストールされてる。容量の無駄遣い
macOSでbashは/bin/shとして使われてる。Debianで使われてるdashよりも重い

最新のbashは5系だがmacOSの/bin/shのbashは3系で古い。
ライセンスのせいで新しいbashにアップデートできない
しかしPOSIX準拠のdashにしようと思っても
bash依存してるスクリプトがあって互換性の問題が出るからdashにもできない

つまりmacOSの/bin/shはPOSIX準拠のdashでもない上に
古いbashという中途半端な状態
2020/09/10(木) 14:49:08.50ID:aa4WTOXX
>>77
> `chsh -s /bin/zsh`って実行したらbash使えなくなるよね?
さっさと実行しろ。どうせシェルスクリプトの類はbashで動く
明示的にしていて無い限りmacOSでは古いbashでスクリプトを動かすことになる
最新のbashの機能も使えない
84デフォルトの名無しさん
垢版 |
2020/09/10(木) 15:45:56.05ID:uhPbYbU6
>>81
コマンドについてはデフォルトのシェル用に作られたものを、別のシェルでは動きを変えて対応している。

だから同じ名前のシェルでもOSが異なれば、動きが変わる。

Linuxのshはbashがsh風に動かしているだけで、いろんなところがshではない。
2020/09/10(木) 16:58:53.57ID:aa4WTOXX
>>84
それが>>73のレスと何の関係があるの?
どういうつながりでそういう発言をしたのかを聞いてる
86デフォルトの名無しさん
垢版 |
2020/09/10(木) 18:11:40.04ID:uhPbYbU6
>>85
UNIXは体系的に作られたものではないということ。

それぞれが他人によって作られ、それらを統合しているため、一貫性がないのが普通。

細かい規格も存在していないので、コマンド、スクリプトは環境に依存する。
2020/09/10(木) 18:21:46.36ID:aa4WTOXX
>>86
だからそれが何の関係があるの?
2020/09/10(木) 19:21:59.58ID:aD+veWb6
>>87
>>73
後出しの思い付きを垂れたからやろ。
2020/09/10(木) 19:37:41.08ID:pjCowNAw
なんでだろう?→疑問に思うな!

思考停止か
2020/09/10(木) 22:48:02.68ID:QyeHeLUF
>>86 って言ってるのに、疑問に思うな思考停止とか読めないやつなんだろな
91デフォルトの名無しさん
垢版 |
2020/09/10(木) 23:37:28.48ID:a+RPoaYl
そもそもUNIXは、たまたまこうなったんじゃなくて、合理的な理由があるんだけど、なんでそれを知ろうとしないの?

UNIXはこういう思想で物を作ってますと宣言してるのに。
2020/09/11(金) 01:22:31.38ID:hZ3Ldf5L
いやー、たまたまやろ。
根っこにポリシーはあっても、それ以外はかなりのいきあたりばったり。
2020/09/11(金) 03:59:13.43ID:d1DTUP2t
>>92
それな。"$1" みたいにダブルクォートでくくらないといけないのは
明らかな仕様の失敗だって言われてるし
他の言語と同じようにPOSIXシェル以前やBourneシェル以前との
互換性をある程度保ちながら改良を続けてきた
必ずしも合理的な理由があるわけじゃないよ。作者がたまたま必要だった
必要と思いつかなかった。それだけだろ
2020/09/11(金) 08:15:02.44ID:xA9OFzcD
>>93
二重引用符で囲まない場合,
どういう利点があるの?
あとそれを説明した記事とかある?
2020/09/11(金) 08:49:14.16ID:5RqPMo1H
>>94
> 二重引用符で囲まない場合,
> どういう利点があるの?
ない

やりたいことはevalで代用できる
96デフォルトの名無しさん
垢版 |
2020/09/11(金) 11:23:25.35ID:oZv/fWa7
ぬるぽ
2020/09/11(金) 11:48:58.51ID:+wXdjlpn
>>94
あるというか、そうしなければならない場合も。
引数がなかったときに、クォートされてると、空文字列になってしまうので、意味が変わる。

make $1
みたいなスクリプトだとクォートしてはいけない。
2020/09/11(金) 13:38:53.46ID:2ygR8GWv
>>97もクォートしないと駄目。嘘を教えるな
2020/09/11(金) 13:45:46.53ID:GM+a9m1V
>>98
試してから言え。
簡単に嘘呼ばわりすんな。
2020/09/11(金) 14:05:53.38ID:2ygR8GWv
>>97
だと makeに "install uninstall" という文字を渡すと
エラーにならずに実行できるから駄目
試さなくてもわかる
2020/09/11(金) 14:32:38.68ID:GM+a9m1V
>>100
じゃあ引数がないときは?
2020/09/11(金) 14:36:02.66ID:FL1BL0eE
>>101
引数がないのに$1を参照してたら

bash: $1: 未割り当ての変数です

っていうエラーが出るだろ
アホかw
2020/09/11(金) 15:18:28.07ID:GM+a9m1V
>>102
でねえわ。
-uを前提にすんな。
クズ。
2020/09/11(金) 15:22:36.50ID:ClWA61Ey
>>103
お前のようなやつが rm -rf "$path/" とか書いて痛い目見るんだろ
ベストなやり方前提にしろ。ベストなやり方で使えない方法を持ってくるな
2020/09/11(金) 17:22:23.47ID:GM+a9m1V
>>104
勝手に-uをベストに決めつけんな。クズ。
オプションは使うべきときに使え。クズ。

makeみたいな、引数の有無で挙動が変わるコマンドがあって、考えなしに変数をクォートすりゃあいいってもんじゃない、って話をしてんだよ。クズ。
2020/09/11(金) 17:26:30.94ID:rpshaWn6
考えなしにクォートしなかったから
バグが増え危険なコードになってんだろが
107デフォルトの名無しさん
垢版 |
2020/09/11(金) 17:39:34.54ID:cQZtEKri
ガッ
108デフォルトの名無しさん
垢版 |
2020/09/11(金) 17:48:50.71ID:oZv/fWa7
make組のスクツか
2020/09/11(金) 17:53:09.84ID:JEMEP9MD
ガッ
なコード書きたいただの甘えん坊だな ID:GM+a9m1V は
2020/09/11(金) 18:41:08.82ID:GM+a9m1V
>>108
lsでも同じ。
2020/09/11(金) 19:09:02.73ID:JEMEP9MD
シェルスクリプト書くうえで、
command
command arg
どちらも(前にチェック無しで)書きたいなんてほとんどないだろうに。ほとんどないのはあげつらってるのはお前だけという点で明らかだな

ls で言えば
ls target
ls
結果が違うんだから目的も違う
ls ''
でエラーになる方が大体の目的にあっているだろうにとしか思えない
112デフォルトの名無しさん
垢版 |
2020/09/11(金) 21:09:13.16ID:GJYer3nV
>>92
だから、そう説明してるんだよ。わざわざ作り直したり、同じようなものを作らないのがUNIXの考え方。
2020/09/11(金) 21:25:03.10ID:GM+a9m1V
>>111
文盲どもめ。
もともと頻度の話ではない。
クォートしないことにも意義がある、というだけ。

実際、既存コマンドのラッパーみたいなものを書くときなんかでは活用できる。
2020/09/11(金) 21:30:01.59ID:xA9OFzcD
そこでPlan 9 rcですよ。

引用符の種類が一つしかない。
そしてクソほど使いにくいw
2020/09/11(金) 22:09:45.47ID:JEMEP9MD
>>113
文盲と他人をあげつらってるくせにの文盲はお前じゃ
>クォートしないことにも意義がある
誰も意義がないなんて言ってないだろが

発端は
>それな。"$1" みたいにダブルクォートでくくらないといけないのは
>明らかな仕様の失敗だって言われてるし
だからな。その流れ中にクォートありだけをあげつらっている(?)のは、クォートしないことにも意義があるじゃなく読まれてもしょうがないな
2020/09/11(金) 22:26:19.12ID:JEMEP9MD
失敗だって言われてるってその例では「全く」wピンと来ないが、

今時名前の中にスペースが入っているの当たり前で、ほぼ必ずダブルクォートで囲まなければならないのがメンドくさいのは確かだな
逆(単にダブルクォート有無の動作が逆ではなく、ダブルクォート無しでもダブルクォート有りの動作、IFSで分かつなら別の表現)っていうのならわかるが、失敗というほどでもねえなとも思われる
多分、伝わってないのは、そういうことだよw
2020/09/11(金) 22:45:29.66ID:GM+a9m1V
>>115
違うわ、文盲。
>>94
これ。
2020/09/11(金) 22:54:33.23ID:JEMEP9MD
>>117
話には流れがあるんだな
で、お前の言うことには言うほどでもないってこともあるだろう、そのしつこく延々と>>94にたいしてって言うのは。自分で案に認めてるように 頻度 はそうないらしいしw
文盲の意味を履き違えてるなwてかよくわかってないだろう
2020/09/12(土) 00:02:20.83ID:8+3Td7f1
$1と書いてるのに$1がないとみなされるのは
利点ではなく欠点
2020/09/12(土) 01:27:02.50ID:cIbo/3Vm
>>119
シェルの変数は、ただのテキスト置換なレベルだからな。
今さらそんな理想を言っても始まらん。
2020/09/12(土) 01:28:06.18ID:cIbo/3Vm
>>118
いや、あきらかに文盲であることがはっきりした。w
2020/09/12(土) 01:28:55.85ID:Q/cMHo3Y
>>120
> シェルの変数は、ただのテキスト置換なレベルだからな。
それはウソ
2020/09/12(土) 01:51:34.41ID:lVvt6egL
>>121
流れに関係なく、俺の突然言い出したことを理解できないのは文盲というのなら、お前から見たら文盲なんだろな
文盲という意味(厳密な意味じゃない)を理解してないアレだと俺は思うけどな
っていうことで明らかに終わりだな、その投げやり言い放ちだけのレスでw
124デフォルトの名無しさん
垢版 |
2020/09/12(土) 03:31:42.22ID:d3hRbJnw
仮にお前が賢い人間だとするじゃん
仮に相手が馬鹿な人間だとするじゃん
その場合だと争いにならないわけだから争いになってるということはその過程は合っていなかったわけだね
つまり
お前らは馬鹿だってことさ
125デフォルトの名無しさん
垢版 |
2020/09/12(土) 04:17:42.56ID:wMTnI8uy
>>122
コードをどう解釈するのかはシェル内部の仕様。

変数名を文字列として指定し、文字列で指定された変数の値を参照する仕組みもシェルの仕様。

これは結果的にわかりにくい表現、使ううえで間違いやすい仕様として認識されている。

UNIXはたいしたことない欠点をあとから変更する文化はない。

マイクロソフトのように次から次へ新しいものを作っては捨て、作っては捨てということはしない。
2020/09/12(土) 05:24:39.89ID:Q/cMHo3Y
単に互換性のために修正できないだけ
欠点は欠点。修正できない可哀想
だからPOSIXに新しい言語も追加できない
2020/09/12(土) 05:39:35.64ID:Q/cMHo3Y
> 変数名を文字列として指定し、文字列で指定された変数の値を参照する仕組み
ウソ
2020/09/12(土) 05:49:23.00ID:UoolulYH
行為主体(発言主体)の意思ではなく事柄の客観的事実に言及したいのであれば、「ウソ」ではなく「間違い」「事実ではない」といった言葉を用いるべし
2020/09/12(土) 05:49:59.50ID:Q/cMHo3Y
わかってていってるからウソだろう
2020/09/12(土) 06:29:49.25ID:UoolulYH
だろうおじさんでしたか...
2020/09/12(土) 07:07:17.20ID:uZ7XE8wK
本人が否定しなければウソだということ
132デフォルトの名無しさん
垢版 |
2020/09/12(土) 13:09:24.18ID:wMTnI8uy
>>126
そうね。でもそれで大成功をおさめているのがUNIX系。もうすべてがUNIXになりつつある。WindowsのUNIX化もとまらない。

そもそもシェルスクリプトに不満があるのなら、別のスクリプト言語を使えばいい。
2020/09/12(土) 13:09:48.29ID:65NtGZ7l
仕事でシェルスクリプトを触りはじめたけどすぐに地雷を踏む
2020/09/12(土) 13:23:20.82ID:6ll5lvdV
macのローカルで作ったシェルをLinuxで動かしたら悲しいことになった
2020/09/12(土) 14:00:32.63ID:Py28fth2
>>132
> そもそもシェルスクリプトに不満があるのなら、別のスクリプト言語を使えばいい。
/bin/shが他のスクリプト言語になることなんてあるんか?
最小構成で他のスクリプト言語が含まれることなんかあるんか?
POSIXが改定して別のスクリプト言語が使えるようになることなんてあるんか?

現実的にありえない話をしても意味がない
2020/09/12(土) 14:01:12.85ID:Py28fth2
>>133
まあ初心者さんは何でもそうだよね

>>134
だからPOSIX準拠しろって話だ
137デフォルトの名無しさん
垢版 |
2020/09/12(土) 14:34:38.84ID:tj7slUn6
>>133
例えば?
2020/09/12(土) 14:58:47.65ID:cIbo/3Vm
>>133
ワナだらけだからね。
しかたないね。
本当に。。。
2020/09/12(土) 15:02:55.76ID:WICsaeqa
自分が無知なのをごまかすためにわなと言ってる
2020/09/12(土) 15:05:52.91ID:cIbo/3Vm
>>135
じゃあPOSIXなんか無視すりゃいいんだよ。
自分で好きなのをインストールすれば。

poshが普及したりはしないかな?w
2020/09/12(土) 15:52:04.79ID:WICsaeqa
自分は良くても他人のイメージを使うときに困るだろ

posh?好きなら自分でイントールしてろw
2020/09/12(土) 15:58:40.31ID:WICsaeqa
>>140
そのposhとかいうのをmacにインストールしたんだが

$ cd /
posh: cd: too many arguments

で動かないんだがwww

こんなバグソフト普及するわけねーだろwww
2020/09/12(土) 16:01:00.14ID:WICsaeqa
poshを終了しようとして

$ exit
posh: exit: bad number

www
2020/09/12(土) 17:12:01.89ID:cIbo/3Vm
>>141
POSIX互換ならなんでもすべて同じ、ではないから、そんな配慮はムダ。

>>142
ツンデレだな?w
まあがんばれ。
145デフォルトの名無しさん
垢版 |
2020/09/12(土) 17:14:06.13ID:l+/2U9kY
https://hoge1http://hoge2https://hoge3

https://hoge1
http://hoge2
https://hoge3
にしようと、sedやperlワンライナーで頑張ってみたけど
https://hoge1http://hoge2
https://hoge3
にしかならないです

どうやればできますか?
2020/09/12(土) 17:37:28.98ID:lYGfHMY4
>>144
全て同じではないから/bin/shはdashかbashしかありえない
2020/09/12(土) 17:39:17.54ID:bxqUAjH/
PS > "https://hoge1http://hoge2https://hoge3"; -split "http"| %{if($_ -ne ""){"http" + $_}}
https://hoge1
http://hoge2
https://hoge3
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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