まずは2ch-Linux-Beginnersを読みましょう。
いろいろとまとめられているので(・∀・)イイ!!
http://www12.atwiki.jp/linux2ch/
読んでも解決しなかったら、質問を書きこむ前にここを読もう。
http://www12.atwiki.jp/linux2ch/?About
質問に対して答えてもらったら、お礼よりも、結果報告。
過去ログ検索
Google検索
https://www.google.com/search?hl=ja&as_q=検索語句&as_sitesearch=2ch.net%2Ftest%2Fread.cgi%2Flinux%2Fhttps://www.google.com/search?hl=ja&as_q=検索語句&as_sitesearch=5ch.net%2Ftest%2Fread.cgi%2Flinux%2F
※前スレ
くだらねえ質問はここに書き込め! Part 233
http://mao.5ch.net/test/read.cgi/linux/1536848825/
くだらねえ質問はここに書き込め! Part 234
■ このスレッドは過去ログ倉庫に格納されています
2018/11/16(金) 22:58:46.21ID:KePwDHh2
2018/12/02(日) 20:38:27.76ID:CLwRzSKq
2018/12/02(日) 21:01:04.59ID:D7TyAWcc
>>240
もしかしてWebブラウザをGUIアプリケーションだと考えてる?
うーん。OSの基礎から勉強し直してね。
いや,「し直す」っていうか恐らく1mmも勉強してないだろうから,
OSやアプリケーションの基礎を,入門編だけでもいいから勉強しろ。
もしかしてWebブラウザをGUIアプリケーションだと考えてる?
うーん。OSの基礎から勉強し直してね。
いや,「し直す」っていうか恐らく1mmも勉強してないだろうから,
OSやアプリケーションの基礎を,入門編だけでもいいから勉強しろ。
2018/12/02(日) 21:23:15.66ID:UaOQiT3Y
2018/12/02(日) 21:24:55.85ID:4FRbaFy5
2018/12/02(日) 22:09:33.73ID:D7TyAWcc
2018/12/02(日) 22:27:20.12ID:DMqY4CdA
2018/12/02(日) 23:14:30.05ID:6ZB8i84m
>>240
ネットワークの知識がないことが露呈してる。windowsのブラウザでアクセスすればいいだろ。
ネットワークの知識がないことが露呈してる。windowsのブラウザでアクセスすればいいだろ。
2018/12/02(日) 23:15:29.35ID:qB0S5MdG
自分はarandrで設定作ってテスクトップにログインしたら自動読み込みするようにしてる
2018/12/02(日) 23:16:26.94ID:vQ5pRAly
2018/12/02(日) 23:20:20.15ID:6ZB8i84m
>>251
もともとWSLの話だからLinuxでも無いからなぁ。揚げ足取りたい誘導だろう。
もともとWSLの話だからLinuxでも無いからなぁ。揚げ足取りたい誘導だろう。
2018/12/02(日) 23:49:48.39ID:jVpzruKX
くだらない質問です
プログラマーはソースコードを読んでいて映画「マトリックス」みたいに絵が思い浮かぶものなのでしょうか?
プログラマーはソースコードを読んでいて映画「マトリックス」みたいに絵が思い浮かぶものなのでしょうか?
254login:Penguin
2018/12/03(月) 00:22:02.70ID:TU91boOd255237
2018/12/03(月) 16:23:25.20ID:QXNaB/zP 日経Linux 11月号の付録に、100ページのWSL の冊子が付いてる。
WSL やる人は、これぐらいは読むこと
GUI のファイラーも使えないから、
漏れは、CUI のファイラー、ranger をインストールした
CUI のブラウザも、ボタン・入力コントロール・Ajax とか、正常に動くかどうかわからない。
サイトの制作者は、CUIのブラウザなど想定していないし、それでテストもしていないから
WSL やる人は、これぐらいは読むこと
GUI のファイラーも使えないから、
漏れは、CUI のファイラー、ranger をインストールした
CUI のブラウザも、ボタン・入力コントロール・Ajax とか、正常に動くかどうかわからない。
サイトの制作者は、CUIのブラウザなど想定していないし、それでテストもしていないから
2018/12/03(月) 19:47:27.48ID:Xxb/iGa5
257login:Penguin
2018/12/05(水) 07:13:45.85ID:MWGRWA5p age
2018/12/05(水) 17:01:36.56ID:nMAiBJfa
なるべく一般ユーザーの権限や環境を保ったままnice値を下げる方法はありますか。
Firefoxを高い優先度で起動しておきたいのですが
sudo nice -n -10 firefoxとか sudo renice -n -10 <FXPID>とかすると(もちろん)
nice値は下るのですがFirefoxが読み込むファイルなどが/root以下のものになり
プロファイルもお釈迦になります。アドオンなども再インストールしなくてはなりませんし
ダウンロードしたファイルは一々所有者を変更しないと扱いにくくなってしまいます。
ですのでこの部分は一般ユーザーの状態を保ってnice値だけを特別に下げたいのですが
方法ありますでしょうか。
Firefoxを高い優先度で起動しておきたいのですが
sudo nice -n -10 firefoxとか sudo renice -n -10 <FXPID>とかすると(もちろん)
nice値は下るのですがFirefoxが読み込むファイルなどが/root以下のものになり
プロファイルもお釈迦になります。アドオンなども再インストールしなくてはなりませんし
ダウンロードしたファイルは一々所有者を変更しないと扱いにくくなってしまいます。
ですのでこの部分は一般ユーザーの状態を保ってnice値だけを特別に下げたいのですが
方法ありますでしょうか。
2018/12/05(水) 17:23:21.93ID:Dt82BJgA
renice
2018/12/05(水) 17:23:24.64ID:g2eOvet/
sudoなしでfirefoxを起動して、reniceでpid指定でnice値をさげてやれば?
2018/12/05(水) 22:20:09.65ID:nh1+20E0
> sudo renice -n -10 <FXPID>
これで一般ユーザーが起動したFirefoxがrootのプロセスになっちゃうの?
そんな事ある…?
これで一般ユーザーが起動したFirefoxがrootのプロセスになっちゃうの?
そんな事ある…?
2018/12/05(水) 22:26:02.99ID:Dt82BJgA
プロファイル読み込んだ後に起動してるんだから普通の環境なら無いだろ
2018/12/06(木) 00:35:39.99ID:qdaeheQ9
あるテキストファイルがあるとして、title から始まる全ての行に対して、全ての単語を小文字始まりに変換したいんだが、正規表現でどう書いたら良い?
264210
2018/12/06(木) 01:06:04.73ID:gecp39bU 一行で動けばいいなら簡単にできるけど正規表現限定だときつくね?
2018/12/06(木) 01:33:13.89ID:qdaeheQ9
>>264
一行に対してできるなら検索と組み合わせてマクロ化します
一行に対してできるなら検索と組み合わせてマクロ化します
2018/12/06(木) 01:33:31.17ID:qdaeheQ9
Vimスレとかで聞いた方が良いですかね?
2018/12/06(木) 02:21:11.37ID:RbvlISCK
>>266
Vim前提で話をするなら
単語の先頭の一文字だけ小文字にしたいならこうかな
:global/^title/s/\(\w\)\(\w*\)/\L\1\E\2/g
単に全部小文字にしたいならこっちで十分
:global/^title/s/\(\w\+\)/\L\1\E/g
Vim前提で話をするなら
単語の先頭の一文字だけ小文字にしたいならこうかな
:global/^title/s/\(\w\)\(\w*\)/\L\1\E\2/g
単に全部小文字にしたいならこっちで十分
:global/^title/s/\(\w\+\)/\L\1\E/g
2018/12/06(木) 02:23:42.62ID:RbvlISCK
:%global
にしといたほうがよかったかも
にしといたほうがよかったかも
2018/12/06(木) 10:14:26.67ID:VJYGKX8Y
プログラム板に、正規表現のスレがある
基本的に、英単語を抜き出すのが難しい。
英単語で使っている文字の、定義が難しい
\w 単語構成文字 [a-zA-Z0-9_]
これは、ハイフンを含んでいない
\b 単語境界にマッチします。
\B 非単語境界にマッチします
基本的に、英単語を抜き出すのが難しい。
英単語で使っている文字の、定義が難しい
\w 単語構成文字 [a-zA-Z0-9_]
これは、ハイフンを含んでいない
\b 単語境界にマッチします。
\B 非単語境界にマッチします
270login:Penguin
2018/12/06(木) 20:23:53.00ID:S31HjhWL なんでこんな過っ疎過疎な板がLinuxとUnixで二つに分けられてるの?
2018/12/06(木) 21:07:44.17ID:z/pRmxou
おまえMacとWinを1つにまとめられんの?
2018/12/06(木) 22:32:40.78ID:mZZ09Eyz
そう、iphoneならね
2018/12/07(金) 04:23:29.62ID:P1rbRY9S
https://mevius.5ch.net/unix/subback.html
どのスレも長寿命なのいいよね・・・
どのスレも長寿命なのいいよね・・・
2018/12/07(金) 07:21:06.97ID:t8vaIhGY
カッソすぎて井戸端会議かよ
2018/12/07(金) 07:49:35.59ID:8sRrmzDR
276login:Penguin
2018/12/07(金) 08:18:12.54ID:jFly8K+O 2chなんて使ってるひと居るんかな
2018/12/07(金) 17:16:43.62ID:2NexcV1c
exprコマンドってbashでは用無しと思ってました
例えば算術演算は(( ))を使うし
expr substrは${hoge:3:4}などを使います
ところがexpr indexのように文字列の中の特定の文字のインデックスを調べる機能は
bashの範囲では代替が見つかりませんでした(AWKの関数にあるのは知っています)
何かありますか?
例えば算術演算は(( ))を使うし
expr substrは${hoge:3:4}などを使います
ところがexpr indexのように文字列の中の特定の文字のインデックスを調べる機能は
bashの範囲では代替が見つかりませんでした(AWKの関数にあるのは知っています)
何かありますか?
2018/12/07(金) 17:46:52.48ID:dkbPVCR9
2018/12/07(金) 17:50:20.28ID:dkbPVCR9
自分で書いておいてなんだが
expr indexより勝っている点として
マルチバイト文字が適切に処理できることがあるな。
$ VAR='あいうえ'
$ expr index "${VAR}" 'う'
1
$ wc -m <<< ${VAR%う*}
3
この場合は3が返ってきて欲しい。
expr indexより勝っている点として
マルチバイト文字が適切に処理できることがあるな。
$ VAR='あいうえ'
$ expr index "${VAR}" 'う'
1
$ wc -m <<< ${VAR%う*}
3
この場合は3が返ってきて欲しい。
280277
2018/12/07(金) 18:24:37.54ID:2NexcV1c2018/12/07(金) 19:57:17.13ID:5F5HAMAB
<<<というのを初めて見ました
これがGNUの拡張ですか?
リダイレクトみたいもの?
これがGNUの拡張ですか?
リダイレクトみたいもの?
2018/12/07(金) 20:28:07.22ID:275uLVTQ
2018/12/07(金) 22:35:34.11ID:ejPNZuuT
partedのmkpartで
終了の容量を指定するのでなく、
開始から、100GiBのように容量で指定する方法ってありませんか?
※イメージするところ
(parted) mkpart name ext3 50GiB +100GiB
→50GiBの位置から、名前をnameにして、100GiBのパーティションを作成。
終了の容量を指定するのでなく、
開始から、100GiBのように容量で指定する方法ってありませんか?
※イメージするところ
(parted) mkpart name ext3 50GiB +100GiB
→50GiBの位置から、名前をnameにして、100GiBのパーティションを作成。
284210
2018/12/07(金) 23:01:18.70ID:LUyV1vdc gdisk
2018/12/08(土) 00:48:14.45ID:HesUPXBI
<<< これってGNU拡張なのか、知らなかった
<<-
<<-
286285
2018/12/08(土) 00:48:42.78ID:HesUPXBI 途中でした
<<- これもGNU拡張?
<<- これもGNU拡張?
2018/12/08(土) 05:24:25.17ID:efUd6G0J
>>284
ありがとうございます。ほかのコマンドがあったんですね。
ありがとうございます。ほかのコマンドがあったんですね。
2018/12/08(土) 08:30:50.79ID:q3qr8MfH
>>286
それくらい調べようよ
<<-でヒアドキュメント部分の先頭タブ文字が無視されるっていうのは
POSIXで定義されているのでPOSIX sh互換を謳うどのシェルでも使えます。
http://pubs.opengroup.org/onlinepubs/9699919799/utilities/V3_chap02.html#tag_18_07_04
それくらい調べようよ
<<-でヒアドキュメント部分の先頭タブ文字が無視されるっていうのは
POSIXで定義されているのでPOSIX sh互換を謳うどのシェルでも使えます。
http://pubs.opengroup.org/onlinepubs/9699919799/utilities/V3_chap02.html#tag_18_07_04
2018/12/08(土) 11:16:09.18ID:+Jbcoor3
先頭タブだけってほんと使えない仕様だよなw
ヒアドキュメントの終わりがインデントできないのも
片手落ちだし
ヒアドキュメントの終わりがインデントできないのも
片手落ちだし
2018/12/08(土) 15:01:33.33ID:oXl1wIqx
シェルスクリプトでifやforなどで深くインデントしてるところでヒアドキュメントを入れるのは正直かっこ悪くて好きじゃない
<<-で先頭タブを使ったときもあるけど、まぁ微妙だなと
タブ幅なんてエディタやビューアの設定によるし、そもそもスクリプト内でタブ使うのってどうなのという
<<-で先頭タブを使ったときもあるけど、まぁ微妙だなと
タブ幅なんてエディタやビューアの設定によるし、そもそもスクリプト内でタブ使うのってどうなのという
2018/12/08(土) 21:03:10.94ID:L02bMxkc
Ruby では、lstrip で、各行の先頭から、連続した空白類(空白・タブ文字など)を取り除く。
各行の先頭には、0〜2個のタブ文字があります
str = <<"EOT"
<div>
<p>
あいう
</p>
</div>
EOT
res = str.each_line.map( &:lstrip )
puts res
各行の先頭には、0〜2個のタブ文字があります
str = <<"EOT"
<div>
<p>
あいう
</p>
</div>
EOT
res = str.each_line.map( &:lstrip )
puts res
2018/12/08(土) 21:10:44.89ID:OedfhKuH
sslのkeyからcsr作る時の対話モードって、手で打つしか無いの?
294login:Penguin
2018/12/09(日) 00:03:51.45ID:253GiW6t >>293
標準入力から流し込んでもいいよ
標準入力から流し込んでもいいよ
2018/12/09(日) 00:09:18.94ID:gB79gozC
grep $'\n'
とするといかなる入力行もマッチするのですが
これは行末の改行にマッチするということですよね?
ところが
echo -n 'abc' | grep $'\n'
とやってもマッチしてしまって改行が存在しないはずなので
解せないのですがこれはどういうことでしょうか
grepコマンドは改行のない入力でも自前で改行つけた後に
検索するんでしょうかね
とするといかなる入力行もマッチするのですが
これは行末の改行にマッチするということですよね?
ところが
echo -n 'abc' | grep $'\n'
とやってもマッチしてしまって改行が存在しないはずなので
解せないのですがこれはどういうことでしょうか
grepコマンドは改行のない入力でも自前で改行つけた後に
検索するんでしょうかね
2018/12/09(日) 00:54:28.93ID:1ArFEYUd
WindowsやmacOSのアプリケーションストアと、Linuxのパッケージ管理システムの違いってなんですか?
2018/12/09(日) 03:02:09.82ID:4X3RO9or
>>294
標準入力から流し込むというのがよくわからなかったのですが
openssl req -new -key hoge.example.jp.key -out hoge.example.jp.csr < 改行が入っているテキスト
これをやってみると、確かに期待通りのものができました。
対話モードがある場合はこういうのができるのですね。
標準入力から流し込むというのがよくわからなかったのですが
openssl req -new -key hoge.example.jp.key -out hoge.example.jp.csr < 改行が入っているテキスト
これをやってみると、確かに期待通りのものができました。
対話モードがある場合はこういうのができるのですね。
298295
2018/12/09(日) 05:06:48.29ID:gB79gozC ちなみにヌルもマッチしてしまいますね
$'\0' <-- new
$'\n'
$'\0' <-- new
$'\n'
299login:Penguin
2018/12/09(日) 06:59:20.05ID:253GiW6t >>297
> 対話モードがある場合はこういうのができるのですね。
そうとも限らない
たとえばCSR作るケースだと
鍵にパスワードが設定してある場合はパスワード入力には使えない
そういうときはexpectを使う
> 対話モードがある場合はこういうのができるのですね。
そうとも限らない
たとえばCSR作るケースだと
鍵にパスワードが設定してある場合はパスワード入力には使えない
そういうときはexpectを使う
2018/12/09(日) 09:29:11.17ID:4X3RO9or
301login:Penguin
2018/12/09(日) 11:15:57.19ID:/RuDibjk >>295
空文字列に一致している
改行はパターンの一部ではなく、複数のパターンの区切り
$ echo -n 'abc' | grep -o 'a
b'
a
b
$
http://pubs.opengroup.org/onlinepubs/9699919799/utilities/grep.html
> The pattern_list's value shall consist of one or more patterns separated by <newline> characters;
空文字列に一致している
改行はパターンの一部ではなく、複数のパターンの区切り
$ echo -n 'abc' | grep -o 'a
b'
a
b
$
http://pubs.opengroup.org/onlinepubs/9699919799/utilities/grep.html
> The pattern_list's value shall consist of one or more patterns separated by <newline> characters;
302login:Penguin
2018/12/09(日) 13:18:32.17ID:/RuDibjk >>298
bashの場合、コマンドを実行するよりも前の時点で
bashが引数に含まれるNULを取り除いている
$ echo ab$'\0'c | hexdump -c
0000000 a b c \n
0000004
なのでbashでは
grep $'\0' は grep '' と同じで
grep ab$'\0'c は grep abc と同じ
zshではNULを含む引数もそのままコマンドに渡しているので違う結果になる
bashの場合、コマンドを実行するよりも前の時点で
bashが引数に含まれるNULを取り除いている
$ echo ab$'\0'c | hexdump -c
0000000 a b c \n
0000004
なのでbashでは
grep $'\0' は grep '' と同じで
grep ab$'\0'c は grep abc と同じ
zshではNULを含む引数もそのままコマンドに渡しているので違う結果になる
303login:Penguin
2018/12/09(日) 14:31:12.11ID:oLpqFNSA 昔はttyの1番にだけ背景にペンギンの絵とか表示されてたと思うんだけど
これっていつから無くなったの?
KMS導入後?
これっていつから無くなったの?
KMS導入後?
304297
2018/12/09(日) 19:39:15.97ID:4X3RO9or openssl req -new -key hoge.example.jp.key -out hoge.example.jp.csr < 改行が入っているテキスト
をファイルを使わずにシェルスクリプトにして変数にして読み込ませたいのですが、
STD_IN="JP\nTokyo\nChuo-ku\n(省略)"
openssl req -new -key hoge.example.jp.key -out hoge.example.jp.csr < ${STD_IN}
とやっても、ファイルが見つかりませんと出てしまいました。
変数の入れ方は1行に入れるのか、ヒアドキュメントみたいな形にもできるのか、
< には変数は使えないのでしょうか?
をファイルを使わずにシェルスクリプトにして変数にして読み込ませたいのですが、
STD_IN="JP\nTokyo\nChuo-ku\n(省略)"
openssl req -new -key hoge.example.jp.key -out hoge.example.jp.csr < ${STD_IN}
とやっても、ファイルが見つかりませんと出てしまいました。
変数の入れ方は1行に入れるのか、ヒアドキュメントみたいな形にもできるのか、
< には変数は使えないのでしょうか?
2018/12/09(日) 20:03:18.84ID:ECj7FB1h
2018/12/09(日) 20:41:30.18ID:4X3RO9or
2018/12/10(月) 00:05:25.99ID:SK07uHh5
308295
2018/12/10(月) 01:47:07.69ID:iaZVXIYt >>301-302
そういうことだったんですね
grepにパターンを分割してわたす方法は-eオプションを複数用いるのが
唯一かと思っていましたが、改行区切りでもわたせるんですね
grep $'??n'$'??n'
このようにしても同じことのようですね
ただ
grep $'??n' $'??n'
このようにスペースを挟むとスペース以降はファイルを指定する
引数とみなされ空文字なのでエラーとなるようです
ヌル文字をシェルが除去するのも知りませんでした
これですっきりしました、ありがとうございました
そういうことだったんですね
grepにパターンを分割してわたす方法は-eオプションを複数用いるのが
唯一かと思っていましたが、改行区切りでもわたせるんですね
grep $'??n'$'??n'
このようにしても同じことのようですね
ただ
grep $'??n' $'??n'
このようにスペースを挟むとスペース以降はファイルを指定する
引数とみなされ空文字なのでエラーとなるようです
ヌル文字をシェルが除去するのも知りませんでした
これですっきりしました、ありがとうございました
309295
2018/12/10(月) 01:48:55.68ID:iaZVXIYt 文字間違えました
?? → \
?? → \
310295
2018/12/10(月) 07:24:44.06ID:rDY5Jm5J 1つ誤解がありましたので訂正します
grep $'\n' $'\n'
とするとスペースの後ろの改行文字自体をファイルとして指定したと
解釈されてエラーになるようです
grep $'\n' $'\n'
とするとスペースの後ろの改行文字自体をファイルとして指定したと
解釈されてエラーになるようです
311login:Penguin
2018/12/13(木) 07:59:27.16ID:BpuyFdNl age
2018/12/13(木) 08:47:58.94ID:YYFyHPut
$ echo "
> foo
> bar"
foo
bar
引用符一つ入れると改行できたのね・・・
ヒアストリングも<<<"でできるようだし
echo -eだのprintfだの`cat -`だの色々やってたわ
> foo
> bar"
foo
bar
引用符一つ入れると改行できたのね・・・
ヒアストリングも<<<"でできるようだし
echo -eだのprintfだの`cat -`だの色々やってたわ
2018/12/13(木) 09:47:14.64ID:g4Xg+Gp3
[[ -z $hoge ]] や [[ -n $hoge ]]
って必要ですか?
[[ $hoge ]] とか [[ ! $hoge ]] で代用できそうなんですが…
何が違うんでしょ
って必要ですか?
[[ $hoge ]] とか [[ ! $hoge ]] で代用できそうなんですが…
何が違うんでしょ
2018/12/13(木) 10:41:51.23ID:9d5jxDGh
>>313
もし$hogeの値が「-e /dev/null」とかだったらどうするのよ。
もし$hogeの値が「-e /dev/null」とかだったらどうするのよ。
2018/12/13(木) 11:07:49.54ID:2p8AEIUJ
>>314
何も問題ないですよね?
何も問題ないですよね?
317313
2018/12/13(木) 12:10:25.19ID:g4Xg+Gp3 さらにいろいろ試してみましたが
変数の内容がオプションと解釈されてしまって真偽値に影響がでるケースとして
hoge='-e unknown'
[ $hoge ] || echo null
とやってみるとhogeは空でも未定義でもないのに
nullと表示されてしまい、本来の意図とは違う結果になるようです
ただこれも解決方法があり
[ "$hoge" ] || echo null
とすれば意図したテストができるようです
もとより[[を使えば引用符もいらないみたいですね
[ ]の中で変数を二重引用符で囲むのは常識(?)のようなので
やはり-nや-zの必要性がない気がします
[[が無い時代(そんな時代があるのか知りませんが)の産物なんですかね
変数の内容がオプションと解釈されてしまって真偽値に影響がでるケースとして
hoge='-e unknown'
[ $hoge ] || echo null
とやってみるとhogeは空でも未定義でもないのに
nullと表示されてしまい、本来の意図とは違う結果になるようです
ただこれも解決方法があり
[ "$hoge" ] || echo null
とすれば意図したテストができるようです
もとより[[を使えば引用符もいらないみたいですね
[ ]の中で変数を二重引用符で囲むのは常識(?)のようなので
やはり-nや-zの必要性がない気がします
[[が無い時代(そんな時代があるのか知りませんが)の産物なんですかね
2018/12/13(木) 12:33:39.42ID:2p8AEIUJ
>>317
[[ は POSIX非標準。古い新しいではなくbashによって追加された拡張構文
POSIX標準のシェルは対応しない。POSIX標準のシェルには、debianの
デフォルトシェルであるdashやyashやposhがある
どのシェルでも動くようにするならば、[[ は使ってはいけない
[[ は POSIX非標準。古い新しいではなくbashによって追加された拡張構文
POSIX標準のシェルは対応しない。POSIX標準のシェルには、debianの
デフォルトシェルであるdashやyashやposhがある
どのシェルでも動くようにするならば、[[ は使ってはいけない
319313
2018/12/13(木) 12:39:41.77ID:g4Xg+Gp3 >>318
そうなんですね
じゃあやはりPOSIXの範囲内では[の後に-nや-zを使った方が
変数の内容を意図せずオプションと解釈されてしまう場合でも
エラーになって気づくので安全と言えば安全なのかもしれませんね
うっかり変数を引用符で囲み忘れる場合もあるだろうし
そうなんですね
じゃあやはりPOSIXの範囲内では[の後に-nや-zを使った方が
変数の内容を意図せずオプションと解釈されてしまう場合でも
エラーになって気づくので安全と言えば安全なのかもしれませんね
うっかり変数を引用符で囲み忘れる場合もあるだろうし
2018/12/13(木) 12:47:43.62ID:2p8AEIUJ
> じゃあやはりPOSIXの範囲内では[の後に-nや-zを使った方が
俺は使わない。ダブルクォート忘れで困るのは、ここだけじゃない
コマンド呼び出しの、foo "$hoge" "$hage" "$tsuru" "$pika" とかも全部そう。
忘れるとか、そんなもんshellcheckを使えばすぐに解決するんだから気にすることじゃない
そもそもダブルクォートをつけ忘れは、-nや-zを使っても解決しない。
俺は使わない。ダブルクォート忘れで困るのは、ここだけじゃない
コマンド呼び出しの、foo "$hoge" "$hage" "$tsuru" "$pika" とかも全部そう。
忘れるとか、そんなもんshellcheckを使えばすぐに解決するんだから気にすることじゃない
そもそもダブルクォートをつけ忘れは、-nや-zを使っても解決しない。
2018/12/13(木) 12:52:21.57ID:2p8AEIUJ
まあ-zは使うけどな。単に読みやすさのため。
否定というのは場合によっては分かりづらくなる
「空文字なら」 は -z(ゼロの長さなら)で読みやすい
「文字があるの否定」は分かりづらい
「文字がある」はわかりやすいが
-n は no? 文字がノーってことか?で分かりづらい
文字があるという状態を示すために、nを割り当てたやつはセンスがない
否定というのは場合によっては分かりづらくなる
「空文字なら」 は -z(ゼロの長さなら)で読みやすい
「文字があるの否定」は分かりづらい
「文字がある」はわかりやすいが
-n は no? 文字がノーってことか?で分かりづらい
文字があるという状態を示すために、nを割り当てたやつはセンスがない
322313
2018/12/13(木) 13:11:04.56ID:g4Xg+Gp3 最近の言語を何かしらやってる人間にとっては変数の空文字列チェックを
変数そのものでやるというのも馴染みがあってわかりやすいので
できればそうしたいと思ったんですよね
最初の質問の趣旨に戻りますが、-zや-nを使わなくても同等のテストが
できるということで間違いないなら
[[ $hoge ]] [[ ! $hoge ]]
や
[ "$hoge" ] [ ! "$hoge" ]
の方が個人的には読みやすいかな
よくよく考えたら自分はbashしか使わないので便利な[[で事足りそう
変数そのものでやるというのも馴染みがあってわかりやすいので
できればそうしたいと思ったんですよね
最初の質問の趣旨に戻りますが、-zや-nを使わなくても同等のテストが
できるということで間違いないなら
[[ $hoge ]] [[ ! $hoge ]]
や
[ "$hoge" ] [ ! "$hoge" ]
の方が個人的には読みやすいかな
よくよく考えたら自分はbashしか使わないので便利な[[で事足りそう
2018/12/13(木) 13:17:06.99ID:9d5jxDGh
-zや-nは文字列長を判定するのに対して<string>は文字列そのものを判定するっていう違いがあるけど
引用符で囲った場合においてこれらに動作上の違いがあるのか俺には分からん。
少なくとも今のところない。
引用符で囲った場合においてこれらに動作上の違いがあるのか俺には分からん。
少なくとも今のところない。
2018/12/13(木) 14:50:24.14ID:YYFyHPut
testが[としてbashに内蔵されてて驚く
両方ともなぜか外部コマンドもあって驚く
[[が機能多いのにただのbashの方言で驚く
$ type -a test [ [[
test はシェル組み込み関数です
test は /usr/bin/test です
[ はシェル組み込み関数です
[ は /usr/bin/[ です
[[ はシェルの予約語です
両方ともなぜか外部コマンドもあって驚く
[[が機能多いのにただのbashの方言で驚く
$ type -a test [ [[
test はシェル組み込み関数です
test は /usr/bin/test です
[ はシェル組み込み関数です
[ は /usr/bin/[ です
[[ はシェルの予約語です
2018/12/13(木) 16:04:43.42ID:2p8AEIUJ
> testが[としてbashに内蔵されてて驚く
[ が内蔵されてないシェルなんて知らんのだが?
そんなもん現実に存在するのか?
[ が内蔵されてないシェルなんて知らんのだが?
そんなもん現実に存在するのか?
2018/12/13(木) 16:21:22.10ID:9d5jxDGh
2018/12/13(木) 16:33:21.95ID:2p8AEIUJ
2018/12/13(木) 16:40:17.41ID:2p8AEIUJ
もはや神話の世界だな
testが組み込みでないシェルは、コメントも使えないシェルということか
https://ja.wikipedia.org/wiki/Bourne_Shell
> UNIX System III(1981年)
> test コマンドを組み込み。
> # でコメントを書き込めるようになった。
さらに関数数定義も出来ず、Unicodeも扱えないようだ
そんなもん現存してないだろう
> SVR3(1986年)
> 現在のような "$@" の用法
> getopts 組み込み
> パラメータ処理を改善し、関数の再帰呼び出しが可能となった。
> 8ビットクリーン
testが組み込みでないシェルは、コメントも使えないシェルということか
https://ja.wikipedia.org/wiki/Bourne_Shell
> UNIX System III(1981年)
> test コマンドを組み込み。
> # でコメントを書き込めるようになった。
さらに関数数定義も出来ず、Unicodeも扱えないようだ
そんなもん現存してないだろう
> SVR3(1986年)
> 現在のような "$@" の用法
> getopts 組み込み
> パラメータ処理を改善し、関数の再帰呼び出しが可能となった。
> 8ビットクリーン
2018/12/13(木) 17:17:18.77ID:9d5jxDGh
「手元にない」ということと「存在を考えなくていい」とは別物だからね。
2018/12/13(木) 17:22:00.60ID:YYFyHPut
globも元は外部コマンドとかも調べなきゃ分からんわ
フィルタをグロブと呼ぶ変わった宗教って認識だったからな
フィルタをグロブと呼ぶ変わった宗教って認識だったからな
2018/12/13(木) 17:24:32.47ID:2p8AEIUJ
>>329
だからどこに存在しているんですか?
だからどこに存在しているんですか?
2018/12/13(木) 18:43:38.57ID:5CGSaiem
>>331
我が家のSun OS 4の/bin/sh。
我が家のSun OS 4の/bin/sh。
2018/12/13(木) 19:03:57.29ID:2p8AEIUJ
2018/12/13(木) 19:05:54.68ID:2p8AEIUJ
> SunOS 4.1.1インストール媒体(磁気テープ)
この画像に驚愕した
ビデオテープかよw
この画像に驚愕した
ビデオテープかよw
335login:Penguin
2018/12/13(木) 19:16:08.14ID:2U4H8MIt いや磁気テープは現役ですし……
2018/12/13(木) 19:16:28.93ID:Zfs8AO7d
?
2018/12/13(木) 19:22:26.58ID:2p8AEIUJ
sunos 4.1 4 download でぐぐったら出てきた
x86用があったから解凍してみたら、
拡張子img(フロッピーディスク?)のファイルが36個でてきた
これ動くのか? 確認したくてもよくわからん
https://winworldpc.com/product/sunos/4x
x86用があったから解凍してみたら、
拡張子img(フロッピーディスク?)のファイルが36個でてきた
これ動くのか? 確認したくてもよくわからん
https://winworldpc.com/product/sunos/4x
338login:Penguin
2018/12/13(木) 20:01:43.60ID:Kpl2TedD cshにもtcshにも組み込まれてないが
testも[も
testも[も
2018/12/13(木) 20:06:06.97ID:2p8AEIUJ
$ csh
solaris% type test
test is a shell builtin
solaris% tcsh
> type test
test is a shell builtin
solaris% type test
test is a shell builtin
solaris% tcsh
> type test
test is a shell builtin
2018/12/13(木) 20:15:29.66ID:FwJygUTm
341login:Penguin
2018/12/13(木) 21:22:46.92ID:Kpl2TedD2018/12/13(木) 21:24:27.86ID:2p8AEIUJ
劣化版なのでは?
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 女子刑務所は「快適すぎる」「ホテルみたい」SNSで拡散…元受刑者「トイレにも自由に行けず地獄だった」 長期受刑者にはいじめも… [煮卵★]
- 駅のトイレから「トイレットペーパーを持ち帰る人」、実は少なくなかった… [煮卵★]
- デーブ・スペクター、日本戦“地上波放送”のW杯に私見「今回特に盛り上がってるのはWBCの独占配信への腹いせ」 [ネギうどん★]
- 「なぜ夫だったのか」「私は相手を殺さない」、山上被告に対峙した妻・昭恵さんの胸中…安倍氏銃撃4年 [煮卵★]
- 【W杯】「ロナウドにボールを渡す義務や必要性はない」…ポルトガル代表FWのSNS大荒れ「黙って敬意を示せ!」 [王子★]
- 「走って何になるんだろうって」星野真里『24時間テレビ』ランナー決定に疑問殺到 元テレ朝Pも「変えたほうがいい」 [ネギうどん★]
- 【地上波/DAZNほか】 FIFAワールドカップ2026 総合スレ★152【メキシコ/カナダ/アメリカ】
- 【MLB】ツインズ vs ドジャース ★2
- 〓たかせん〓
- わしせん
- とらせん
- こいせん 全レス転載禁止
- 【高市】国会、大荒れ。「聴いてない!聴いてない!」「止めて止めて!」「総理は簡潔に!」怒号飛び交う😳 [518915984]
- 【悲報】高市「G7の説明報告?やーやーなの!😡」秘書問題どころか外交成果の審議も拒否し一時国会止まる [359965264]
- 【悲報】内田梨瑚に検察の求刑通りの判決を下した裁判長、怒れるSNS民に殺到される
- 【悲報】高市早苗のG7での奇行がヤバすぎると話題にwwwwwwww [856698234]
- 高市政府「家計の40%を株式・投資信託・債券にするわよ」 [256556981]
- おなかにるるさんがいます