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

■ このスレッドは過去ログ倉庫に格納されています
2020/03/23(月) 01:12:30.31ID:TYte82vJ
シェルスクリプトに関する総合スレッドです。

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

シェルスクリプト総合 その32
https://mevius.5ch.net/test/read.cgi/tech/1571929725/
2020/05/19(火) 08:40:51.02ID:+8IfJNam
>>304
その証拠って、ログインシェルを zsh にしてログイン後に bash 起動しても
SHELL 環境変数が zsh になってる件ですかね?w
2020/05/19(火) 10:14:32.16ID:zOKQOBke
>>306
反論したいんでしょ?あなたの意見の根拠を聞いてるんですが、そっちはどうしたんですか?
(私が主張していることを証明している)事実だけを言われても困るんですがw
2020/05/19(火) 11:45:35.05ID:+8IfJNam
>>307
根拠あげろって最初に挙げたでしょうに。
俺の環境ではログインシェルを zsh にしてログイン後に bash 起動したけど
SHELL 変数は /bin/bash でしたよ?
309デフォルトの名無しさん
垢版 |
2020/05/19(火) 12:42:00.98ID:zOKQOBke
>>308
それと同じことを言ってる人をググって見つけてこれる?
そういうのが根拠。誰もいないよね。

「俺は○○だ」は根拠じゃなくてお前の主張
その主張の根拠を見つけてきてって言ってるのに
主張を繰り返されても困るw
2020/05/19(火) 15:11:40.95ID:+8IfJNam
>>309
お前の環境で実行しろよオイ
ファビョり方に無理が出てるなあとは思ったが流石にもうお前は終わりだ
311デフォルトの名無しさん
垢版 |
2020/05/19(火) 15:14:56.79ID:O4jzhFRD
むかし北斗の拳というアニメがあったのだが、「お前はもう死んでいる!」と言った瞬間、ケンシロウの頭が「プシャー、ヒデブ!」ってなるような人が、掲示板には居るよね。
ふと思っただけで、特定の誰かを指して言うわけじゃないのだが。
312デフォルトの名無しさん
垢版 |
2020/05/19(火) 16:11:09.24ID:41YM3k+D
>>310
もう飽きた。トドメさしとくね

SHELL environment variable still points to zsh after using bash
SHELL環境変数は、bashを使用した後もzshを指します
https://unix.stackexchange.com/questions/522907/shell-environment-variable-still-points-to-zsh-after-using-bash

SHELL is an environment variable that is passed from bash to zsh when you call zsh.
SHELL is not one of the Parameters Set By The Shell in zsh, so its value remains intact.

SHELLは、zshを呼び出すときにbashからzshに渡される環境変数です。
SHELLはzshのシェルによって設定されるパラメーターの1つではないため、その値はそのまま残ります。


man login

ユーザ ID とグループの ID は /etc/p@sswd ファイル中に記載されている値に従って設定される。
$HOME, $SHELL, $PATH, $LOGNAME, $MAIL の値は、パスワードエントリのそれぞれの
フィールドに従って設定される。 ulimit, umask, nice 値が、 GECOS フィールドの
エントリーによって設定されることもある。
313デフォルトの名無しさん
垢版 |
2020/05/19(火) 16:14:39.49ID:41YM3k+D
https://unix.stackexchange.com/questions/71121/determine-shell-in-script-during-runtime

You can use the command:

$ echo $SHELL
to find out the shell from within the script.

No. $SHELL is the shell of choice of the user. Initialised from the login shell of the user.
Nothing to do with the currently running shell.

いいえ。$ SHELLはユーザーが選択するシェルです。ユーザーのログインシェルから初期化されます。現在実行中のシェルとは関係ありません
314デフォルトの名無しさん
垢版 |
2020/05/19(火) 16:16:06.85ID:41YM3k+D
man bash

SHELL この環境変数にシェルのフルパス名が保存されています。
シェルを起動したときに設定されていない場合は、 bash が現在のユーザのログイン
シェルのフルパス名を代入します。
2020/05/19(火) 17:04:50.75ID:Yw4hD4hb
POSIXシェルの\x80--\xFEあたりのバイト列の取り扱いって,何か規定されてます?
\x00--\x7Fの取り扱いについては
https://pubs.opengroup.org/onlinepubs/9699919799/basedefs/V1_chap06.html#tag_06_04
ここに載ってるけど。
2020/05/19(火) 17:40:08.90ID:+8IfJNam
ミスリードさせる気まんまんの書き込みばかりして
頑なに自分の環境での実行結果は貼らないのはなんで?w

『「アルコールとは酒のこと」といえば間違ってると理解できる?』
って書き込んだ奴はどこに行った?
2020/05/19(火) 18:30:30.69ID:3kLN/2rB
>>316
いい加減傍目からもお前が何をしたいのかわからん
延々となぜか丁寧に説明されているのに、何を言い張ってるんだか。さらにぶり返すとか本当に読めないんだな、色々と
2020/05/19(火) 19:00:31.56ID:3kLN/2rB
せいぜい、延々と正しい説明してるw方の間違いは「ログイン時のシェル」と言ったことだけだな
自ら挙げた>>302の user's preferred command language interpreter という方向にそれも>>312,313で捕捉されてるし
まあ、後で手動でユーザがSHELLを変える設定することも(ほとんど)ないからログイン時のシェルでも通じるだろうけど

>>297は全くの誤りだけどw
319デフォルトの名無しさん
垢版 |
2020/05/19(火) 19:56:07.96ID:8HY/3oGP
「慶應卒の学歴なんていらない」10代起業で成功する子の共通点
https://www.excite.co.jp/news/article/President_35457/
起業で成功するキャリア形成の仕方とは? 元プロサッカー選手で起業家の鈴木啓祐氏に聞いた
https://sogyotecho.jp/career-development/
【アプリ開発で起業】必要な心得とマネタイズ方法のすべて
https://www.dreamgate.gr.jp/contents/column/application-development
学生起業家が開発、「人を軸に本を探すアプリ」とは?読書通じて「考える力」養って
https://newswitch.jp/p/20168
島田商高生がアプリ考案、発表 ICT起業家育成プログラム
https://www.at-s.com/news/article/local/central/730010.html
医師コンビが「治療用アプリ」で起業、禁煙に続き高血圧治療アプリを開発
https://diamond.jp/articles/-/229375
好きが高じて“カレー起業”、キャッシュレス決済アプリ「TOKYO MIX CURRY」の挑戦
https://diamond.jp/articles/-/215868
2020/05/19(火) 20:30:16.61ID:+8IfJNam
>>318
>>302 を示す際に素直に『「Preferred ... 」であってログインシェルじゃなかったわ、すまん』
って書けばそこで終わった話ですよ? なぜこのタイミング?

> まあ、後で手動でユーザがSHELLを変える設定することも(ほとんど)ないからログイン時のシェルでも通じるだろうけど
都合よく解釈しすぎ。 もう一度書くけど
『「アルコールとは酒のこと」といえば間違ってると理解できる?』
って書き込んだ奴はどこに行った?
2020/05/19(火) 20:45:45.83ID:3kLN/2rB
俺は違うからな、お前に延々と付き合っていたのとは

お前は全く間違いの反論でだから、お前がどう挙げつらおうがお前の責め手にはならんだろう、何を勝ち誇って(?)いるんだか
お前自身で、その未だに言い出してる自分の間違いを認め誤りの訂正お礼なんぞもしてないくせに
自分の大きな間違いをごまかす消化するために小さな間違いをあげつらってるだけだな、しつこく繰り返してるとこからは
322デフォルトの名無しさん
垢版 |
2020/05/19(火) 21:56:10.07ID:41YM3k+D
>>318
> の間違いは「ログイン時のシェル」と言ったことだけだな

諦めて読めな?

> man bash
>
> SHELL この環境変数にシェルのフルパス名が保存されています。
> シェルを起動したときに設定されていない場合は、 bash が現在のユーザのログイン
> シェルのフルパス名を代入します。
323デフォルトの名無しさん
垢版 |
2020/05/19(火) 21:58:18.44ID:41YM3k+D
つまり>>308のこれが嘘だったってこと

> 俺の環境ではログインシェルを zsh にしてログイン後に bash 起動したけど
> SHELL 変数は /bin/bash でしたよ?
2020/05/19(火) 22:12:04.54ID:3kLN/2rB
>>322
>>318の最後の行でそれを補足してるんだがな

>>302の user's preferred command language interpreter
で間違いないだろう、それ以上でもそれ以下でもない。ログインシェル自体が(ユーザデフォルトの) user's preferred command language interpreter だから&それしか多分設定するとこがないから、ログインシェルが設定されてるだけかな

手動で、今の俺の気分はログインシェルとは違うこのシェルなんだと、
SHELL=なんか
sudo -s
user's preferred command language interpreter が実感できなくね?

で、bashではそう書いてあるらしいが、(ほぼなんもしてない)dashってどうなってるんだろうと、ソースをチラ見した限りはそんな風なとこちょっと見えないな。OSがなのかな?

ああ、もちろん>>323なんてのは嘘(逆にどんな環境やねん)、dashでもSHELLに設定されてるし、そこからbashを起動してもSHELLはbashのパスには変わらない
325デフォルトの名無しさん
垢版 |
2020/05/19(火) 22:15:18.55ID:41YM3k+D
>>324
何をごちゃごちゃ言ってるのか知らんけど、

> 俺の環境ではログインシェルを zsh にしてログイン後に bash 起動したけど
> SHELL 変数は /bin/bash でしたよ?

↑これはman bashからみて絶対にありえないし
SHELL環境変数はログイン時のシェルなんだよ

まさか(自分で変更したら)ログイン時のシェルじゃない!
とか言いたいんか?
326デフォルトの名無しさん
垢版 |
2020/05/19(火) 22:18:59.32ID:41YM3k+D
> dashでもSHELLに設定されてるし、
それはどこに書いてあんの?
ソースコード見たなら書いてある場所ぐらい言えるよね
327デフォルトの名無しさん
垢版 |
2020/05/19(火) 22:20:16.13ID:41YM3k+D
訂正
× まさか(自分で変更したら)ログイン時のシェルじゃない!
○ まさか(ログイン後に自分でSHELL変数の内容を変更したら)ログイン時のシェルじゃない!
2020/05/19(火) 22:21:16.50ID:3kLN/2rB
>>325
何をムキになってるんだかwお前の読めない読まない病かよ?
ser's preferred command language interpreter
で間違いないだろう、それ以上でもそれ以下でもない。変数の意味だろ、そもそもは
意味としては、ログインシェルじゃないのも設定できる、ser's preferred command language interpreter だって話だよ

誰も、bashで変わるなんて言ってないのに、何を言い出してるんだか
2020/05/19(火) 22:22:53.62ID:3kLN/2rB
>>326
OpenBSD、FreeBSD、Ubuntu
で、そうなるって話
dashのソース中にはチラ見ではちょっとそういうのを設定しているとこは見えないけどって話。どこでやってんのかなあって話
2020/05/19(火) 22:24:45.56ID:3kLN/2rB
まさか、こんな展開になるとは思わんかったな。なんでムキになってるんだか
2020/05/19(火) 22:33:25.89ID:Yw4hD4hb
>>315
議論中すいません。ageます
2020/05/19(火) 22:36:50.04ID:+8IfJNam
man と実装が違っているのは確認してるよ
でも事実複数バージョン(bash 4.2系/4.4系)でこの動きをするんで
「zsh をログインシェルでbash起動したら SHELL が bash に
なった」発言を撤回するのは難しいね

特に >>302 の内容が決定的に撤回困難にしている
これは君が示した文書で、君を苦しめているのは君自身
ちがうか?

君の手元の環境で発生しているだろう?
小説に出てくるクソ弁護士のような論調はやめたまえ
2020/05/19(火) 22:45:31.09ID:3kLN/2rB
>>332
どんな環境やねん
こっちで確認できる複数の環境でそんなのならんから、嘘としか思えんぞ
自分で環境がとかいいだしてるんだから、言えよw
仮にbash4だけの話なら、bash3、bash5ではそうならんから、bash4のバグじゃないの?bash4ってなんでやねん
2020/05/19(火) 22:46:32.45ID:3kLN/2rB
>>331
https://pubs.opengroup.org/onlinepubs/9699919799/xrat/V4_xbd_chap06.html
「ここに載っている」のはそういうことらしい。その中でも規定されてるのはって話かな、上記のは
それ以外は特に制御文字としては扱わない。\x00--\x7F内でも言及してないのは
\x80--\xFEなんてロケール/キャラクターセット依存だからそれぞれのキャラクターセット/文字コードでの話だろう。もちろんその中に制御文字なんてないんじゃないかな
2020/05/19(火) 22:53:45.57ID:3kLN/2rB
>>332,333
あ、Ubuntu 18.04 TLS のはまだ bash 4.4.20 だった
そんな動きにはならんな。嘘だなww
2020/05/19(火) 22:54:59.35ID:fsFcCZSO
>>332 bash_profile あたりに SHELL=/bin/bash とか書いてるんじゃないの?
2020/05/19(火) 23:04:14.14ID:3kLN/2rB
なるほど....!w
338デフォルトの名無しさん
垢版 |
2020/05/19(火) 23:04:16.77ID:41YM3k+D
>>332
お前が言ってることの根拠は
「"preferred"はログインシェルのことじゃない!」
なんだろうけど、じゃあpreferredはどういう意味なんだよ?
339デフォルトの名無しさん
垢版 |
2020/05/19(火) 23:05:04.34ID:41YM3k+D
>>336
自分で書いといてアホなこと言ってんのかこいつはwww
あーほあーほ
340デフォルトの名無しさん
垢版 |
2020/05/19(火) 23:07:18.47ID:41YM3k+D
>>332

> 特に >>302 の内容が決定的に撤回困難にしている
> これは君が示した文書で、君を苦しめているのは君自身
> ちがうか?

意味不。 >>302の内容は

SHELL
This variable shall represent a pathname of the user's preferred command language interpreter.
この変数は、ユーザーの優先コマンド言語インタープリターのパス名を表します。

と書いてある通り、ユーザーの優先、つまりログインシェルのこと
それ以外のどういう意味があるんだよ?zshでログインしてbash起動したら
bashがユーザーの優先になるんだ!ってお前は言いたいんか?
341デフォルトの名無しさん
垢版 |
2020/05/19(火) 23:09:21.26ID:41YM3k+D
> dashのソース中にはチラ見ではちょっとそういうのを設定しているとこは見えないけどって話。どこでやってんのかなあって話
SHELL環境変数は基本的に外部から渡される環境変数なんだから、そんなものなくても当たり前
bashは空だった場合に自分で設定しているようだが、それは空だった場合の話で
入っていればなにもしないということ
2020/05/19(火) 23:14:34.20ID:3kLN/2rB
>>341
負けず嫌いというか、誤りを認めたくないのは、アイツと同じだなw
お前がbashがといいだしたんだろうがっ。まあ、だいたい合意形成できてるからもういいや
343デフォルトの名無しさん
垢版 |
2020/05/19(火) 23:16:01.88ID:41YM3k+D
手元の動作と周りの情報が全部違っていたら、自分の手元が間違ってるって考えないもんかねw
なんで俺の手元で再現させる?再現してないからそれは違うって言ってるに決まってるだろ
常識として「自分の手元だけで発生してる」は信用ならんから
ソースとして外部の情報を参照しろって言ってるのに、こいつは手元しか見ていない
2020/05/19(火) 23:21:55.33ID:3kLN/2rB
>>340
優先の より 好みの の方がしっくりこなくね?w
ログインシェルはもろ好みだから個々そういう設定にできるんだし

>>343
なんかイライラしてんのか?ちょっとイミフだな。まあいいたいことはなんとなくわかるけどw
345デフォルトの名無しさん
垢版 |
2020/05/19(火) 23:22:13.23ID:41YM3k+D
はい。誰でも簡単に再現できます(笑)
bashを起動したところでSHELLは再設定などされません
(dashはSHELLが空の場合は自分で設定などしないんだな)

$ docker run -it debian dash
# echo $SHELL

# export SHELL=abc
# echo $SHELL
abc
# bash
root@58fdfabe096c:/# $SHELL
abc
346デフォルトの名無しさん
垢版 |
2020/05/19(火) 23:22:42.25ID:41YM3k+D
>>344
> 優先の より 好みの の方がしっくりこなくね?w
google先生に楯突くな!
2020/05/19(火) 23:24:47.87ID:3kLN/2rB
>>346
ww
348デフォルトの名無しさん
垢版 |
2020/05/19(火) 23:25:40.73ID:41YM3k+D
debian 7がbash 4.2.37だな
docker run -it debian:7 dash でやればいい。結果は同じだが
349デフォルトの名無しさん
垢版 |
2020/05/19(火) 23:29:44.81ID:41YM3k+D
いい加減理解したかね?俺なんか数年前に

「あぁ!?SHELLは現在のシェルじゃねーのかよ!
現在のシェルのパスはどうやって調べればいいんだよ!」

で苦労してんだから間違いなわけねーっつーの
2020/05/20(水) 00:20:43.81ID:91fxSgSA
Windows10, WSL, Ubuntu 18.04 で、やったら、

echo $SHELL
/bin/bash

>>336
/etc/@passwd に、デフォルトシェルが設定してある

ユーザー名:x:1000:1000:,,,:/home/ユーザー名:/bin/bash
2020/05/20(水) 00:24:36.85ID:9QbBPRXg
こいつは一体誰と戦ってるんだ・・・
352デフォルトの名無しさん
垢版 |
2020/05/20(水) 00:44:53.45ID:InboTxWs
>>350
話の流れが読めてない
そこからzshとか他のシェルに変えても$SHELLは/bin/bashのままだって話をしてる
2020/05/20(水) 01:16:06.12ID:2U5TD7Rg
WSLは変態だから、bash.exe で(WSLを)起動すると、chsh/passwd直接などでログインシェルを他のにしても無視されて、bashがログインシェル(?)になる。当然、SHELLは/bin/bash
ログインシェルをzshに変えた、bash.exeで起動した、(bashが起動してるしSHELLはすでに/bin/bashだけど、)、コマンドラインでbashを起動した。SHELLが/bin/bashになってる変わった!
とかか?w

WSLでもubuntu.exeで起動したらまともに起動するっぽいし、他の正規のUnix/Linuxと同じ動作にしかならんな
2020/05/20(水) 10:06:46.91ID:9mY3JetI
>>334
thx
2020/05/20(水) 10:09:40.38ID:9mY3JetI
結局,現在使ってるシェルを確かめる最も可搬で確実な方法って
ps -o comm= -p $$
↑これかな。
2020/05/20(水) 10:31:11.68ID:InboTxWs
>>355
最も可搬な方法でも完璧ではないよ
それが使えないpsコマンドもたくさんある
2020/05/20(水) 13:58:16.99ID:9mY3JetI
そりゃ完璧ではないだろうけど。
でもまぁ,「最も」可搬な方法ではあるのよね。
2020/05/20(水) 14:29:26.47ID:InboTxWs
真面目に出力をパースすれば最も可搬になる
2020/05/21(木) 18:22:14.34ID:eGAQdhfO
そうかなぁ。
その出力がシステムの間で共通していないから,出力を指定するオプションを付ける必要があるんだけど,
そのオプションにすら可搬性がない,っていう状況だと認識してる。

>>358
ちなみに「真面目なパース」の例を挙げてほしい。
2020/05/21(木) 18:33:46.87ID:C3uZcQQo
dash,ksh,zshでの、-c でだと、
ps -p $$ は ps 自身になってるんだけど、なんでやねんっと思わなくもない
-c だから別にいいだろうけど
2020/05/21(木) 18:38:04.04ID:C3uZcQQo
ああ、(最後の)コマンドをexecしてんのか。納得した
2020/05/21(木) 19:15:46.38ID:C3uZcQQo
ああ、bashもps(というかコマンド一つだけならか?)だけならps自身だったexecしてた
2020/05/22(金) 10:18:39.53ID:TfVZs9xf
???
2020/05/22(金) 16:42:02.19ID:ZQuJuyf5
えーと、良かったね。「なんでやねんっ」で終わるよりは。
2020/05/22(金) 17:19:36.41ID:VBkbngi+
マウントとりの変形
2020/05/22(金) 20:59:32.61ID:ZQuJuyf5
何のことだ? 自分で調べて納得したなら間違いなく良いことだし、本来そうあるべきだろう。
2020/05/23(土) 07:51:59.95ID:0T8MjFiT
頓珍漢な擁護してて草
2020/05/23(土) 11:11:44.65ID:Ify9JmqW
>>359
> ちなみに「真面目なパース」の例を挙げてほしい。
1. ps する
2. 一行目を読み取る
3. PIDが1列目、COMMANDが○列目ってわかる
4. 二行目移行を読み取っていく
5. PIDが一致したら、同じ行の○列目を参照する
6. それが起動してるシェルだ

なお、普通にシェルでプログラミングしろ
シェル芸でこれをやろうとするなよ

この程度の処理プログラミングとして考えれば
ほんの数行で終わる簡単な処理なんだが
シェル芸でやろうとして逆に難しくするやつがいる
シェル使ってるやつは、プログラミングができないやつが多い
2020/05/23(土) 15:58:02.30ID:ch2ICEVw
「シェルを使う」という表現に一体どんな意味を込めているのやら...
2020/05/23(土) 17:56:41.50ID:hM7sXxSn
>>369
この程度のシェルいプログラミングもできないで
シェルが得意と勘違いしてる人がいるなぁって話
2020/05/23(土) 18:04:41.89ID:31g10QWp
コードのコの字も出てないのに。少しはコードがあっての話でしか無いな
2020/05/24(日) 14:47:54.65ID:Y1ZXEm/L
age
2020/05/24(日) 15:32:04.04ID:0WjVzP+p
入れてみてわかるシェルの良さ
2020/05/24(日) 15:48:48.76ID:FTfvJDOJ
何入れてるの?
2020/05/24(日) 16:42:21.69ID:LIiHhrYu
fishです(AA略)
2020/05/24(日) 16:46:49.93ID:FTfvJDOJ
fishはPOSIXシェルじゃないから駄目だね
377デフォルトの名無しさん
垢版 |
2020/05/24(日) 20:51:41.67ID:vB1Q/4mw
>>368
途中に時間が入っていると面倒なんだな
2020/05/24(日) 22:40:02.98ID:oexHBYog
Nushellがじわじわと来てるらしいよ
https://www.nushell.sh/
2020/05/25(月) 04:14:56.98ID:sIgPYriA
>>377
時間を気にする必要でもあんの?
2020/05/25(月) 08:11:38.36ID:heJMc7oc
>>368
「一行目に桁を表わす文字列があって,それがPIDとCOMMANDを含む」
↑これは
>>355 の挙げた
「 ps -o comm= -p $$ 」
↑これより可搬性あるって言えるの?

どちらもPOSIXでは規定されてるけど,どのOSでも使えるとは限らないし,
もっと言うとps -o comm= -p $$が使えないOSならpsの出力もPOSIXで定められた書式じゃなさそう。
2020/05/26(火) 10:37:11.76ID:DUXfe990
busyboxな環境(tiny core linux)でバックグラウンドプロセスの終了待機を行いたいんですが
psコマンドにPIDを指定する-pオプションがないので途方にくれています。
バックグラウンドプロセスは自分で起動するのでプロセスのPIDは取れてます。
psコマンドの一覧からPIDでgrepすると関係ないのも引っかかる可能性があるため困ってます。
他の手段て何かないでしょうか。
382デフォルトの名無しさん
垢版 |
2020/05/26(火) 10:48:37.13ID:5zsa2F3Z
>>380
POSIXで定められてない書式に対応すればいいだけの話

>>381
だからpsの出力をパースすればいいだけw
383デフォルトの名無しさん
垢版 |
2020/05/26(火) 11:01:33.46ID:5zsa2F3Z
>>381
どーでもいいけど、なんでバックグラウンドプロセスの終了待機でpsコマンドなんか使うの?
384デフォルトの名無しさん
垢版 |
2020/05/26(火) 11:10:30.99ID:5zsa2F3Z
シェル芸界隈の人間って、psをgrepで〜とか重い方法しか知らないよねw
2020/05/26(火) 13:11:20.00ID:EtaD8bXQ
rubyのspawnで 起動したプロセスを、終了待ちしたり、強制終了したり、親プロセスと一緒に殺す
https://takuya-1st.hatenablog.jp/entry/2016/04/07/040451

Ruby で、子プロセス起動をして、終了待ちをする。
終了待ちするには Process.wait( pid ) か、Process.waitall を使う

i = spawn(" sleep 10 " )
Process.wait i
2020/05/26(火) 16:37:31.19ID:s8Kl2PhF
>>384
シェル芸人に親でも殺されたんか?
まあおちつけよ。
2020/05/26(火) 18:30:47.45ID:DUXfe990
ps | awk '{print $1}' | grep -w $PID
grepで-wオプションが使えることが判ったのでこれで取れました
388デフォルトの名無しさん
垢版 |
2020/05/26(火) 18:52:54.27ID:5zsa2F3Z
>>387
なぁ、プロセスがいるかどうかだろ?
kill -0 "$PID" でいいやん?
389デフォルトの名無しさん
垢版 |
2020/05/26(火) 18:53:49.06ID:5zsa2F3Z
それに自分で起動したプロセスを待つだけ(何もしなくていい)なら
wait "$PID" でもいいよね?
2020/05/26(火) 20:23:33.32ID:DUXfe990
>>388
kill -0 $PIDでいけました。ありがとうございます
待機中は他の処理が走るのでポーリングで待つ必要がありました
2020/05/28(木) 12:28:14.58ID:n9bIhKS2
上の方でOil Shellについて語っていた人がいたから誰か使ってるかもしれないと思って聞くけど
export -fを使おうとすると 'export' doesn't accept -f because it's dangerous.
ってエラーになるんだけどdangerousなのってどういう場合?
また一般的にexport -fは危険だから使うな派って存在するの?
2020/05/28(木) 18:03:48.14ID:RKI8PBxM
>>391
そういう派閥があるのか知らんけど,
exportしないに越したことはないと思う。
2020/05/29(金) 00:50:25.00ID:ECv3RSEQ
>>392
それはどういう理由でしょうか?
2020/05/29(金) 11:48:42.39ID:cDEYRYlQ
シェル変数、環境変数、関数は重要なものが多い
システムの動作、セキュリティなどに重要な影響を与えるものが多い
不用意に操作すると深刻な問題が起きる可能性が高い

こんなところでしょうか
2020/05/29(金) 13:13:25.07ID:5WC69G2H
つまりシェル変数、環境変数、関数を使うなってこと?
2020/05/29(金) 17:26:04.52ID:dZOo8Hm0
よく知らない人は使わないに越したことはない
というところかなあ
よく知らない人が使うと
重要なものを上書きしてしまうことがあるし
2020/05/29(金) 17:36:28.66ID:PKgR6prj
重要なものを上書きしてしまうというのは
どういう例でしょうか?
2020/05/29(金) 19:48:52.09ID:jz7GhSHA
そりゃまあ,素人は出刃包丁なんて使わんほうがいいわな。
職人が使ったらすごく良い道具であろうとも。
2020/05/29(金) 20:22:22.27ID:Jvc7lzH+
出刃包丁の話はしてません
2020/05/29(金) 21:34:05.33ID:dZOo8Hm0
>>397
signal とか?
2020/05/29(金) 21:48:30.89ID:Jvc7lzH+
>>400
今の話に何の関係があるの?
2020/05/31(日) 15:21:54.45ID:sIM3dDR8
>>399
えぇ……と,比喩っていう概念がこの世界にはあってね,
つまり物事を説明するときに例えを用いるんだわ。
まぁ例えば会社で品質管理の監査を受けてるときに
比喩を使って説明するのはよくないかも知れんが,
こんな場末の掲示板で一々真面目に受け答えする方がオカシイって話ですよ。
2020/05/31(日) 15:27:43.93ID:JRHRMyge
>>402
比喩は物事を説明するときに使いましょう。
物事を批判するときに使うのは意味が全くありません

なぜなら"別のもの"に例えるのが比喩だからです。
"別のもの"を批判しても意味はありません。
2020/05/31(日) 17:59:31.00ID:sIM3dDR8
あぁ,あの書き方で「批判してる」って捉えちゃうのか。
あいにく,読み取り能力のない人間にまでモノを教える程暇じゃないんでね。
2020/05/31(日) 20:56:34.13ID:9ZicJfwX
質問されたからその都度答えていても
おかしな受け取られ方すると、やる気なくすよねぇ
406デフォルトの名無しさん
垢版 |
2020/06/03(水) 11:21:10.07ID:i+Bz2w1U
シェルの勉強中です。
引数にフルパスでファイル名を入れています。
シェル の動きとして引数がフルパスでなかった場合、エラーにしたいのですが、フルパスの判定はどうしたらいいでしょうか。
自分なりに考えたのは、
A=locate $1
if [ A = $1 ]
みたいな感じでlocateの実行結果と引数を比較して、完全一致しなかったら、フルパスじゃないのでエラーとしていました。
ただこの場合、例えばsyslogを指定した場合、locateにsyslogのバックアップ(syslog_0603みたいな)も引っかかってしまって上手く動作しませんでした
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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