シェルスクリプトに関する総合スレッドです。
全般
・荒しは無視しましょう。
・丁寧な姿勢を心掛けましょう。
・ネチケット(死語)を意識しましょう。
・「○○(他の言語)でいいやん」は禁止。他のスレに行ってください。
シェルスクリプト総合 その32
https://mevius.5ch.net/test/read.cgi/tech/1571929725/
シェルスクリプト総合 その33
■ このスレッドは過去ログ倉庫に格納されています
2020/03/23(月) 01:12:30.31ID:TYte82vJ
2020/04/08(水) 02:25:50.33ID:WKxansXY
GUI環境を好みで選べるのが良いところじゃん
GNOME
KDE
Xfce
LXQT
MATE
等々
GNOME
KDE
Xfce
LXQT
MATE
等々
2020/04/08(水) 09:01:22.17ID:TEO49enz
良いところがあれば、世界で一位になれる。
これはマクドナルドに味で勝負した高級ハンバーガー店が
惨敗するまでの悲しいストーリーである。
これはマクドナルドに味で勝負した高級ハンバーガー店が
惨敗するまでの悲しいストーリーである。
2020/04/08(水) 09:40:49.64ID:RSqCZ6so
オープンソースって一般人からしたら負担だけどな
粗造乱造が基本だから目当ての物を探すのに苦労する
模倣のくせに機能不足だとか洗練されていない外観だとか心当たりあるだろ
何か意見すれば「自分で」で逃げるしさ
呆れられたいのか誇られたいのかはっきりしな
お仕着せのappleと無法地帯のLinuxと両極端なんだよ
粗造乱造が基本だから目当ての物を探すのに苦労する
模倣のくせに機能不足だとか洗練されていない外観だとか心当たりあるだろ
何か意見すれば「自分で」で逃げるしさ
呆れられたいのか誇られたいのかはっきりしな
お仕着せのappleと無法地帯のLinuxと両極端なんだよ
2020/04/08(水) 09:52:21.83ID:/PQASvbd
意訳:俺の好みじゃない。Windowsがいちばん
2020/04/08(水) 09:58:42.93ID:gjFvYWAv
ただWindowsを使ってて知ってることが多いってだけだな
単にそれで基準がWindows
それ以上手がかかってもダメだし手がかけられないとダメ、
Windowsで知ったことの範囲でWindowsの手順でできなきゃダメってだけ
単にそれで基準がWindows
それ以上手がかかってもダメだし手がかけられないとダメ、
Windowsで知ったことの範囲でWindowsの手順でできなきゃダメってだけ
2020/04/08(水) 10:46:28.90ID:kH2GeAXz
Linuxと言うかオープンソース界隈でいやなのは
先駆者が先輩面したり初心者を馬鹿にして
さも自分がすごいんだと言いたげなところかなあ
これと対極をなすのがスマホとかなんだけど
知り合いの若いのにアプリの使い方聞いてみ?
親切に教えてくれるぞ
要するに俺はLinuxを知ってる!
オープンソースを知ってる!
でも誰も褒めてくれないから
新参者がきたら牢名主のように
小言を言い続けてやると思ってそうなところ
先駆者が先輩面したり初心者を馬鹿にして
さも自分がすごいんだと言いたげなところかなあ
これと対極をなすのがスマホとかなんだけど
知り合いの若いのにアプリの使い方聞いてみ?
親切に教えてくれるぞ
要するに俺はLinuxを知ってる!
オープンソースを知ってる!
でも誰も褒めてくれないから
新参者がきたら牢名主のように
小言を言い続けてやると思ってそうなところ
2020/04/08(水) 10:47:16.11ID:kH2GeAXz
まあ手に入れた数少ないスキルだからしゃーないか
2020/04/08(水) 12:06:02.73ID:+6aWDKKq
俺にLinuxや他のOSSを教えてくれた人はそんな人じゃなかったな。
懇切丁寧に教育してくれた。
寧ろ大学やらでWindowsやExcelの使い方を指導してた教員のほうが態度が酷かった。
まぁ,どういう人に恵まれるかで,その「教えた対象」の評価すら変わるってのは,ちょっと非論理的だけど,
かく言う俺も,多分上で話した教員のせいで,Microsoft製品を色眼鏡で見てしまうきらいがある。
懇切丁寧に教育してくれた。
寧ろ大学やらでWindowsやExcelの使い方を指導してた教員のほうが態度が酷かった。
まぁ,どういう人に恵まれるかで,その「教えた対象」の評価すら変わるってのは,ちょっと非論理的だけど,
かく言う俺も,多分上で話した教員のせいで,Microsoft製品を色眼鏡で見てしまうきらいがある。
2020/04/08(水) 13:15:43.23ID:oh4YVJIM
>>88
> ただWindowsを使ってて知ってることが多いってだけだな
だから営業部隊の話につながる。
使ってもらうにはどうしたらいいか?答えは宣伝だよ。
パソコン屋に置いてもらうネットやテレビで宣伝する。
いずれも金がかかる方法だ。だからオープンソースいう
選択をした時点で積んでいるんだよ。自分で自ら王手されに行った。
いや王手がだめって言ってるんじゃないよ。
相手(利用者)にとってはいい捕虜だから
> ただWindowsを使ってて知ってることが多いってだけだな
だから営業部隊の話につながる。
使ってもらうにはどうしたらいいか?答えは宣伝だよ。
パソコン屋に置いてもらうネットやテレビで宣伝する。
いずれも金がかかる方法だ。だからオープンソースいう
選択をした時点で積んでいるんだよ。自分で自ら王手されに行った。
いや王手がだめって言ってるんじゃないよ。
相手(利用者)にとってはいい捕虜だから
2020/04/08(水) 13:57:03.92ID:247C/Fba
Linuxが普及してない世界線でシェルスクリプト書いてるやつもおるんやなw
2020/04/08(水) 14:19:48.18ID:5a3Kp3Hv
2020/04/08(水) 15:36:59.25ID:WKxansXY
変な位置で改行するやつ多いな
みんな同じ環境で見てると思ってるんだろうな
みんな同じ環境で見てると思ってるんだろうな
2020/04/08(水) 15:57:31.62ID:oh4YVJIM
同じ環境で見てるとは思ってないが、
最低横80文字(笑)ぐらいで見てると思ってる
スマホぐらいだろ?そのスマホで長い文字が読みづらいなら
それはサイトの仕様が悪いだけ
最低横80文字(笑)ぐらいで見てると思ってる
スマホぐらいだろ?そのスマホで長い文字が読みづらいなら
それはサイトの仕様が悪いだけ
97デフォルトの名無しさん
2020/04/08(水) 16:04:41.38ID:snKRM3SL マックをLinuxに加えれば結構シェアが取れていると思うぞ。
2020/04/08(水) 16:10:53.92ID:oh4YVJIM
MacでLinux用バイナリがそのまま動かないなら、Linuxとは認められません
2020/04/08(水) 16:18:00.91ID:kuvoBLk0
なにを主張したいのか
なにを否定したいのか
シェルスクリプトと全然関係ないことには変わりなさそう
なにを否定したいのか
シェルスクリプトと全然関係ないことには変わりなさそう
100デフォルトの名無しさん
2020/04/08(水) 16:28:47.40ID:WKxansXY サーバーOSシェアはLinuxがダントツだからな
WSLの環境作るのも楽になったしWindowsは単なるコンテナになった
WSLの環境作るのも楽になったしWindowsは単なるコンテナになった
101デフォルトの名無しさん
2020/04/08(水) 17:31:57.45ID:1eDcIZ82 普通にwin上でbashです
102デフォルトの名無しさん
2020/04/08(水) 17:35:44.13ID:oh4YVJIM > Windowsは単なるコンテナになった
これは「すごいこと」という意味だよね?
Linuxも単なるコンテナになることが出来る。
コンテナになれるというのはモダンなOSの必須条件
これは「すごいこと」という意味だよね?
Linuxも単なるコンテナになることが出来る。
コンテナになれるというのはモダンなOSの必須条件
103デフォルトの名無しさん
2020/04/08(水) 18:41:56.01ID:q66UKRIK 無理やりなレス。自覚は無さそうだが
104デフォルトの名無しさん
2020/04/08(水) 18:45:47.99ID:oh4YVJIM 単なるコンテナになったの意味がわからんだけだよw
クラウドで散々仮想マシンでLinuxが動いてるのに、
Windowsは仮想マシンで動かせばいいとか皮肉の意味で言うやつもいるし。
使いたいものだからこそ、仮想マシンやコンテナで使うわけで
むしろ逆に、Windowsさえ使えれば、ホストはなんでもいいということなんだが
クラウドで散々仮想マシンでLinuxが動いてるのに、
Windowsは仮想マシンで動かせばいいとか皮肉の意味で言うやつもいるし。
使いたいものだからこそ、仮想マシンやコンテナで使うわけで
むしろ逆に、Windowsさえ使えれば、ホストはなんでもいいということなんだが
105デフォルトの名無しさん
2020/04/08(水) 18:54:28.79ID:WKxansXY でっていう
106デフォルトの名無しさん
2020/04/08(水) 19:17:03.62ID:+6aWDKKq なんか事実とか関係なく,
「議論に勝てばいいや」の精神でレスしてる奴がいるな。
いや,もはや議論と呼ぶにも烏滸がましい,口喧嘩か。
いいかげんスレチな話題は収めようぜ?
「議論に勝てばいいや」の精神でレスしてる奴がいるな。
いや,もはや議論と呼ぶにも烏滸がましい,口喧嘩か。
いいかげんスレチな話題は収めようぜ?
107デフォルトの名無しさん
2020/04/08(水) 19:29:33.52ID:oh4YVJIM >>106
では言い出しっぺからどうぞ
では言い出しっぺからどうぞ
108デフォルトの名無しさん
2020/04/08(水) 19:32:17.43ID:+3Ip4bre ∧∧ ミ _ ドスッ
( ,,)┌─┴┴─┐
/ つ. 終 了 │
〜′ /´ └─┬┬─┘
∪ ∪ ││ _ε3
゛゛'゛'゛
( ,,)┌─┴┴─┐
/ つ. 終 了 │
〜′ /´ └─┬┬─┘
∪ ∪ ││ _ε3
゛゛'゛'゛
109デフォルトの名無しさん
2020/04/10(金) 00:47:25.53ID:na8GHWZ/ Apple「全部こちらが用意したものだけ使ってろ改造すんな」
Microsoft「OSだけ売るから自作なり出来合いなり好きにしろ」
Linux「OSはタダでやるからそれ以外は自分でやれ。改造してもこっち頼るな」
unixとは無縁だがあれの扱いも林檎とどっこいでいいんだよな?一般人は用ないし
Microsoft「OSだけ売るから自作なり出来合いなり好きにしろ」
Linux「OSはタダでやるからそれ以外は自分でやれ。改造してもこっち頼るな」
unixとは無縁だがあれの扱いも林檎とどっこいでいいんだよな?一般人は用ないし
110デフォルトの名無しさん
2020/04/10(金) 06:21:29.88ID:4WnvV4mF × Microsoft「OSだけ売るから、自作なり出来合いなり好きにしろ」
○ Microsoft「OSと開発環境、プラットフォームを提供するから、自作なり出来合いなり好きにしろ」
MSが提供してる開発環境・プラットフォーム
・Visual Studio
・Visual Studio Code
・Azure
・GitHub
・WSL
・Office(マクロ)
・SQL Server
・HyperV
○ Microsoft「OSと開発環境、プラットフォームを提供するから、自作なり出来合いなり好きにしろ」
MSが提供してる開発環境・プラットフォーム
・Visual Studio
・Visual Studio Code
・Azure
・GitHub
・WSL
・Office(マクロ)
・SQL Server
・HyperV
111デフォルトの名無しさん
2020/04/10(金) 09:07:06.52ID:Ixv/fgWK small basicが入ってないぞ
112デフォルトの名無しさん
2020/04/10(金) 10:23:40.16ID:ES+9souz113デフォルトの名無しさん
2020/04/10(金) 11:04:17.67ID:4WnvV4mF >>112
LinuxじゃなくてGNUだろ?
GNUのものはWindowsで何でも使えるようになったぞw
GNU「開発ツールはタダでやるから勝手に使え。OSはまだできてない。」
あとAzureに相当する開発プラットフォームはAppleもLinuxも実現できてない
やってるのはAmazonとGoogleであってLinuxではない
そう考えるとクラウドもOSの機能の一つを完全に実現してるのは
Microsoftだけなんだよな
LinuxじゃなくてGNUだろ?
GNUのものはWindowsで何でも使えるようになったぞw
GNU「開発ツールはタダでやるから勝手に使え。OSはまだできてない。」
あとAzureに相当する開発プラットフォームはAppleもLinuxも実現できてない
やってるのはAmazonとGoogleであってLinuxではない
そう考えるとクラウドもOSの機能の一つを完全に実現してるのは
Microsoftだけなんだよな
114デフォルトの名無しさん
2020/04/10(金) 13:07:14.50ID:CpDDWrVd MS信者がキモい
115デフォルトの名無しさん
2020/04/10(金) 14:26:12.32ID:5gPd6BaW Linuxって企業だったんだwww
116デフォルトの名無しさん
2020/04/10(金) 14:46:54.18ID:ES+9souz めっちゃ突っ掛かってきてワロタ
117デフォルトの名無しさん
2020/04/10(金) 16:00:20.83ID:nukGJGZx118デフォルトの名無しさん
2020/04/10(金) 16:04:50.67ID:vdvhEun4 Linux愛好者?って偏屈だよね
俺Linux知ってるけどお前に教えないワラって感じで性格悪い
そのあたりでLinuxが浸透しない原因
そして今日もMSの株価時価総額1位
俺Linux知ってるけどお前に教えないワラって感じで性格悪い
そのあたりでLinuxが浸透しない原因
そして今日もMSの株価時価総額1位
119デフォルトの名無しさん
2020/04/10(金) 16:26:01.02ID:pLdRSiLY 時価総額の世界第一は違うぞ
第3位のAppleの時価総額はさほど第2位のMicrosoftとさほど変わらんが同等に見てるってことだな、お前は
第3位のAppleの時価総額はさほど第2位のMicrosoftとさほど変わらんが同等に見てるってことだな、お前は
120デフォルトの名無しさん
2020/04/10(金) 16:32:36.01ID:ix9xeN7W マイクロソフト信者やパソコンの大先生のよた話はもういいよ
121デフォルトの名無しさん
2020/04/10(金) 16:50:45.63ID:5/MlN8IX 時価総額世界一はマイクロソフトだぞ?
ずっと前に奪還したって聞いたんだがな
https://stocks.finance.yahoo.co.jp/us/ranking/?kd=4&tm=d
1〜50件 / 6370件中最終更新日時:2020年4月10日7時40分
順位 名称・ティッカー・市場 取引値 前日比・前日差 時価総額 掲示板
1 マイクロソフト [MSFT] - NASDAQ 165.14 (04/09 17:20) +0.01% (+0.01) 1,256,062,603千
2 アップル [AAPL] - NASDAQ 267.99 (04/09 17:20) +0.72% (+1.92) 1,172,584,885千
3 アマゾン・ドット・コム [AMZN] - NASDAQ 2042.76 (04/09 17:20) -0.01% (-0.24) 1,016,907,263千
ずっと前に奪還したって聞いたんだがな
https://stocks.finance.yahoo.co.jp/us/ranking/?kd=4&tm=d
1〜50件 / 6370件中最終更新日時:2020年4月10日7時40分
順位 名称・ティッカー・市場 取引値 前日比・前日差 時価総額 掲示板
1 マイクロソフト [MSFT] - NASDAQ 165.14 (04/09 17:20) +0.01% (+0.01) 1,256,062,603千
2 アップル [AAPL] - NASDAQ 267.99 (04/09 17:20) +0.72% (+1.92) 1,172,584,885千
3 アマゾン・ドット・コム [AMZN] - NASDAQ 2042.76 (04/09 17:20) -0.01% (-0.24) 1,016,907,263千
122デフォルトの名無しさん
2020/04/10(金) 17:11:16.18ID:ix9xeN7W 奪還とか信者きめえ。今の世界第一はサウジアラムコな
そんな会社関係ないIT関係でとか言いそうだが
アホみたく無知を晒すなよ、それもキリリっとかでw
そんな会社関係ないIT関係でとか言いそうだが
アホみたく無知を晒すなよ、それもキリリっとかでw
123デフォルトの名無しさん
2020/04/10(金) 17:11:29.26ID:QxjVipyN スレ違い
124デフォルトの名無しさん
2020/04/10(金) 18:29:49.84ID:5gPd6BaW >>117
アスペかよwww
アスペかよwww
125デフォルトの名無しさん
2020/04/11(土) 10:25:05.95ID:md0SvLvZ × Linuxは使いものにならない
○ Linuxを使いこなせない。
だいたい,シェルスクリプトに関して言えばLinuxなんかのUnixが圧倒的に有利なんだから,
少なくともこのスレでWindowsを讃えまくっても無駄骨だと思います(指摘)。
○ Linuxを使いこなせない。
だいたい,シェルスクリプトに関して言えばLinuxなんかのUnixが圧倒的に有利なんだから,
少なくともこのスレでWindowsを讃えまくっても無駄骨だと思います(指摘)。
126デフォルトの名無しさん
2020/04/11(土) 22:43:08.40ID:7reDkQuk 自炊できない自分を棚にあげて親のメシマズをあげつらう僕ちゃん
127デフォルトの名無しさん
2020/04/11(土) 23:13:07.29ID:OL9J6aZ0 厳密にいうとシェルスクリプトではないのですが、
wsl や cygwin で
$ mv 'テスト' test
とすると
test\r
というファイルができてしまいます。
test
というファイルにするにはどうすればいいですか?
wsl や cygwin で
$ mv 'テスト' test
とすると
test\r
というファイルができてしまいます。
test
というファイルにするにはどうすればいいですか?
128デフォルトの名無しさん
2020/04/12(日) 10:26:07.71ID:3CnLqbrV129デフォルトの名無しさん
2020/04/12(日) 10:44:52.40ID:6aAn44p0 マジなわけねーだろw
130デフォルトの名無しさん
2020/04/12(日) 11:29:32.30ID:kH7j2wOo ls で見ると
'test'$'\r'
というファイルができています
sed とか tr とかいろいろ試しているのですが、\rが取れません。
'test'$'\r'
というファイルができています
sed とか tr とかいろいろ試しているのですが、\rが取れません。
131デフォルトの名無しさん
2020/04/12(日) 11:55:26.80ID:qLm4HprE Windowsだから改行がCRLFになってCRがファイル名として処理されたんだろうね
昔そうなった記憶があるようなないような
普通ならエラーになったような気がするんだけどね
試してないけど名前変えたいだけならGUIでログインしてファイルマネージャで修正できると思う
コマンドラインならESC押しながら補完したらコマンドで触れる有効なファイル名になった気がする
昔そうなった記憶があるようなないような
普通ならエラーになったような気がするんだけどね
試してないけど名前変えたいだけならGUIでログインしてファイルマネージャで修正できると思う
コマンドラインならESC押しながら補完したらコマンドで触れる有効なファイル名になった気がする
132デフォルトの名無しさん
2020/04/12(日) 11:59:52.48ID:qLm4HprE CRLFのCRが原因だろうけど
シェルスクリプトなら改行コード変換してみるとか
ターミナルならTeraTerm使うとかでしのいで
根本対処は後にした方がいいと思う
うちはcygwinの環境もうないしWSLも使わんわ
もっぱら仮想環境かラズパイ
昔仕事でcygwin使ってたころ
いざUnixやLinuxの実機に移したら
動かなくて痛い思いした覚えがある
シェルスクリプトなら改行コード変換してみるとか
ターミナルならTeraTerm使うとかでしのいで
根本対処は後にした方がいいと思う
うちはcygwinの環境もうないしWSLも使わんわ
もっぱら仮想環境かラズパイ
昔仕事でcygwin使ってたころ
いざUnixやLinuxの実機に移したら
動かなくて痛い思いした覚えがある
133デフォルトの名無しさん
2020/04/12(日) 12:03:30.62ID:KtYGSQjQ stty igncr
mv $'test\r' test
Windows/MS-DOSなテキストファイル(CRLFが改行)に書いて実行したとか
mv $'test\r' test
Windows/MS-DOSなテキストファイル(CRLFが改行)に書いて実行したとか
134デフォルトの名無しさん
2020/04/12(日) 12:13:43.08ID:KtYGSQjQ ふつーーーーのTeminalアプリでは igncr にしちゃうと改行できなくなんのか
WindowsのCommand Promptからbash起動でも同じく改行できなくなんな
>>127は本当にインタラクティブでやったのか?
WindowsのCommand Promptからbash起動でも同じく改行できなくなんな
>>127は本当にインタラクティブでやったのか?
135デフォルトの名無しさん
2020/04/12(日) 12:39:56.00ID:KtYGSQjQ 送り側(Terminalアプリ)の改行はCR、受け側はCRをLFに変換してなのね
stty のそこらあたりのデフォ(-inlcr -igncr icrnl)からは。WSLでも同じ
stty igncr するとリターンキー叩いても無視されて何もできなくなるが、リターンキーの代わりにControl-JでLF送ればいいだけなのね
stty のそこらあたりのデフォ(-inlcr -igncr icrnl)からは。WSLでも同じ
stty igncr するとリターンキー叩いても無視されて何もできなくなるが、リターンキーの代わりにControl-JでLF送ればいいだけなのね
136127
2020/04/12(日) 13:16:51.20ID:kH7j2wOo シェルスクリプトでやっています。
mv "テスト" test
stty igncr
mv '$test'\r' test
というファイルを作って
$ bash ,/file
とやると
cannot execute binary file: Exec format error
とでます。インタラクティブでやらないとできないんでしょうか?
mv "テスト" test
stty igncr
mv '$test'\r' test
というファイルを作って
$ bash ,/file
とやると
cannot execute binary file: Exec format error
とでます。インタラクティブでやらないとできないんでしょうか?
137デフォルトの名無しさん
2020/04/12(日) 13:32:38.13ID:MICQg9zq そのシェルスクリプトの改行コードがCRLFになってるんじゃないですか、というのと
mv '$test'\r' test
ではなく
mv $'test\r' test
(シングルクオートの位置と数に注意)
$ bash ,/file
ではなく
$ bash ./file
or
$ bash file
で実行しましょう。
mv '$test'\r' test
ではなく
mv $'test\r' test
(シングルクオートの位置と数に注意)
$ bash ,/file
ではなく
$ bash ./file
or
$ bash file
で実行しましょう。
138デフォルトの名無しさん
2020/04/12(日) 13:34:49.83ID:QH8CCQ6c 書き間違いなのかも知れないけど、そこは
$ bash ./test
なんじゃ?
$ bash ./test
なんじゃ?
139デフォルトの名無しさん
2020/04/12(日) 13:57:36.00ID:KtYGSQjQ140デフォルトの名無しさん
2020/04/13(月) 06:27:55.73ID:bwzJgTJt POSIX準拠度を図るツールとか調べてるサイトないんかね?
141デフォルトの名無しさん
2020/04/14(火) 01:35:34.02ID:JSjD3hsj checkbashismとかは?
142デフォルトの名無しさん
2020/04/14(火) 07:04:50.30ID:ji8PXwtq143デフォルトの名無しさん
2020/04/14(火) 09:49:58.31ID:r1rqFhB1 調べてどーすんの?
144デフォルトの名無しさん
2020/04/14(火) 10:25:51.42ID:ji8PXwtq そうすりゃ自分が間違ってるのかシェルにバグが有るのかわかるだろ?
145デフォルトの名無しさん
2020/04/14(火) 10:42:05.80ID:GtUt/+gx 調べたければ公式のtest suite入手すればいい
http://get.posixcertified.ieee.org/posixfaq.html
http://get.posixcertified.ieee.org/posixfaq.html
146デフォルトの名無しさん
2020/04/16(木) 01:24:21.41ID:sXaGgreP ファイルが存在するなら上書き、しないなら新規作成ってtouchじゃなくてviでやるかんじでしょうか?
147デフォルトの名無しさん
2020/04/16(木) 01:56:40.88ID:phPWx1q3 リダイレクトでappendすればいい
$ do_something >> output.txt
$ do_something >> output.txt
148デフォルトの名無しさん
2020/04/16(木) 02:20:53.33ID:tywb42E3 bash なら、-e で、ファイルが存在すれば真
[ -e ファイル名 ]
逆に、ファイルが存在しない時に真
[ ! -e ファイル名 ]
[ -e ファイル名 ]
逆に、ファイルが存在しない時に真
[ ! -e ファイル名 ]
149デフォルトの名無しさん
2020/04/16(木) 09:20:05.32ID:pf1fo5EI >>148
これだとうまくいかないことがある
これだとうまくいかないことがある
150デフォルトの名無しさん
2020/04/16(木) 11:59:50.73ID:TtBh+dOu 上書きって言ってるから、単純に
$ do_something > output.txt
で良いんじゃない?
$ do_something > output.txt
で良いんじゃない?
151デフォルトの名無しさん
2020/04/16(木) 12:07:49.18ID:DjP17ITj >>150
普通にこれでいいな。
普通にこれでいいな。
152デフォルトの名無しさん
2020/04/16(木) 13:48:40.08ID:pf1fo5EI リダイレクトでファイルを作れるけど
リダイレクトでファイルを削除ってできないんだよな
空にすることはできるけど
リダイレクトでファイルを削除ってできないんだよな
空にすることはできるけど
153デフォルトの名無しさん
2020/04/16(木) 14:05:57.06ID:42Nlbk00 ファイルオープンとファイル作成は同居してるからな
削除は別物
削除は別物
154デフォルトの名無しさん
2020/04/16(木) 14:19:23.91ID:pf1fo5EI まあ分かるけど対象性がないと言うか
Aから出力したものをBにコピーする。の発展で
AからBに移動する。みたいな発想はなかったんかな?
そうすれば/dev/nullに移動 = 削除になったと思うんだが
移動も削除も実装w
Aから出力したものをBにコピーする。の発展で
AからBに移動する。みたいな発想はなかったんかな?
そうすれば/dev/nullに移動 = 削除になったと思うんだが
移動も削除も実装w
155デフォルトの名無しさん
2020/04/16(木) 15:26:12.37ID:MiKwJnZu 消去したいパスのリストをファイルに入れておいて(1行1パス)
cat path_list.txt | xargs rm -rf
みたいなことをしてるのですが、ファイルのパスでワイルドカード(アスタリスク)を
使いたくなりました。
単純にパスのリスト中でアスタリスクを使っても展開されないようですが、
展開させるにはどうするのがいいでしょうか。
cat path_list.txt | xargs rm -rf
みたいなことをしてるのですが、ファイルのパスでワイルドカード(アスタリスク)を
使いたくなりました。
単純にパスのリスト中でアスタリスクを使っても展開されないようですが、
展開させるにはどうするのがいいでしょうか。
156デフォルトの名無しさん
2020/04/16(木) 15:32:46.71ID:pf1fo5EI >>155
ファイル名に*という文字が含まれている場合はどうするの?
ファイル名に*という文字が含まれている場合はどうするの?
157デフォルトの名無しさん
2020/04/16(木) 15:33:05.34ID:pf1fo5EI あ、いや、「*」という名前のファイル名があったらどうするの?
158デフォルトの名無しさん
2020/04/16(木) 15:58:03.80ID:phPWx1q3 $ ls
foo.log bar.log baz.txt qux.txt *.txt input.txt
$ cat input.txt
*.log
'¥*.txt'
$ cat input.txt | xargs -I {} bash -c 'ls {}'
bar.log foo.log
*.txt
foo.log bar.log baz.txt qux.txt *.txt input.txt
$ cat input.txt
*.log
'¥*.txt'
$ cat input.txt | xargs -I {} bash -c 'ls {}'
bar.log foo.log
*.txt
159デフォルトの名無しさん
2020/04/16(木) 18:47:06.88ID:qyR5Ndp0 bash -cってどんな時に使うんです?
簡単なシェルスクリプトならググらず書けるようにはなったけどまだよく分からん
関数もaliasも使えない分安全だろうけど使いたい時はどうするの
簡単なシェルスクリプトならググらず書けるようにはなったけどまだよく分からん
関数もaliasも使えない分安全だろうけど使いたい時はどうするの
160デフォルトの名無しさん
2020/04/16(木) 19:26:09.12ID:pf1fo5EI161デフォルトの名無しさん
2020/04/16(木) 19:28:03.58ID:pf1fo5EI あと環境汚すようなときにも使うな。
関数定義してなにかしたいけど、後で消したいとか
まあサブシェルとかでもいいんだけど
関数定義してなにかしたいけど、後で消したいとか
まあサブシェルとかでもいいんだけど
162デフォルトの名無しさん
2020/04/16(木) 19:39:39.35ID:MiKwJnZu >>158
なるほどー。素晴らしい。
なるほどー。素晴らしい。
163デフォルトの名無しさん
2020/04/16(木) 21:47:35.66ID:phPWx1q3 >>159
interactive shellじゃない場合は
`shopt -s expand_aliases; source <alias設定file>` でエイリアスが展開される
$ cat .alias_and_fn
alias ll='ls -tAhG'
foo() {
echo "foobar!!"
}
$ cat input.txt | xargs -I {} bash -O expand_aliases -c $'source .alias_and_fn;¥n ll {}; foo'
行単位で読み込むときにalias展開するからaliasを設定した後に改行入れてから使う
interactiveなログインシェルとして起動したければ`bash -cli`とか
詳しくはman bashで
interactive shellじゃない場合は
`shopt -s expand_aliases; source <alias設定file>` でエイリアスが展開される
$ cat .alias_and_fn
alias ll='ls -tAhG'
foo() {
echo "foobar!!"
}
$ cat input.txt | xargs -I {} bash -O expand_aliases -c $'source .alias_and_fn;¥n ll {}; foo'
行単位で読み込むときにalias展開するからaliasを設定した後に改行入れてから使う
interactiveなログインシェルとして起動したければ`bash -cli`とか
詳しくはman bashで
164デフォルトの名無しさん
2020/04/16(木) 22:37:57.81ID:tywb42E3 bash -c は、よく見る
16556
2020/04/17(金) 06:27:50.85ID:wSTFfL+S >>56
ようやく、分かりますた!
xxx="$(command -v rbenv)"
と、端末で直接実行すると、xxx は、rbenv となって、パスが付かないのは、
すでに、rbenv という関数が定義されたファイルを読み込んでいるため、
同名のコマンドよりも先に、関数が見つかるから
一方、xxx="$(command -v rbenv)"
と、bash スクリプト内に書いて、スクリプトを実行すると、
xxx は、~/.rbenv/bin/rbenv とパスが付くのは、
rbenv という関数が定義されたファイルを読み込んでいないため、コマンドが見つかるから
シェル関数を使うには、その関数が定義されたファイルを読み込んでから使うのか
ようやく、分かりますた!
xxx="$(command -v rbenv)"
と、端末で直接実行すると、xxx は、rbenv となって、パスが付かないのは、
すでに、rbenv という関数が定義されたファイルを読み込んでいるため、
同名のコマンドよりも先に、関数が見つかるから
一方、xxx="$(command -v rbenv)"
と、bash スクリプト内に書いて、スクリプトを実行すると、
xxx は、~/.rbenv/bin/rbenv とパスが付くのは、
rbenv という関数が定義されたファイルを読み込んでいないため、コマンドが見つかるから
シェル関数を使うには、その関数が定義されたファイルを読み込んでから使うのか
166デフォルトの名無しさん
2020/04/17(金) 06:41:06.63ID:BxfxWji9 Ubuntuでシステムのシェルってdashになってるみたいですけど、確かこれってbashより
速いからって理由でしたっけ?
実際どのぐらい違うか興味があるんですが、どこかにdashとbashのベンチマーク比較した
情報とかあります? (自分でやれって? w)
速いからって理由でしたっけ?
実際どのぐらい違うか興味があるんですが、どこかにdashとbashのベンチマーク比較した
情報とかあります? (自分でやれって? w)
167デフォルトの名無しさん
2020/04/17(金) 10:38:11.77ID:9nBzfuh2168デフォルトの名無しさん
2020/04/17(金) 10:44:00.48ID:9nBzfuh2 dashを選んでるのは速度もあるしPOSIX準拠ってのもあるだろうね
169デフォルトの名無しさん
2020/04/17(金) 14:54:31.55ID:Urb0mH6b 関数を一行で書く時エラーで悩んでたけど波括弧ってに空白いるのな
foo(){ echo foo;}
小括弧だと必要ないのに何この初見殺し
foo(){ echo foo;}
小括弧だと必要ないのに何この初見殺し
170デフォルトの名無しさん
2020/04/17(金) 15:09:03.88ID:xgpGiYXu >>169
shellcheck使うといいよ
shellcheck使うといいよ
171デフォルトの名無しさん
2020/04/17(金) 15:40:41.15ID:9nBzfuh2 >>169
zshは空白無くても動く
zsh -c 'foo(){echo test;};foo
test
dashはコンパイルエラー起こらないと思いつつ、実行するとエラーになり
dash -c 'foo(){echo test;}' # コンパイルエラー起こらない
dash -c 'foo(){echo test;};foo' # でも実行すると怒られる
実は"最後の" ; がおかしい
dash -c 'foo(){echo test;} foo' # これを実行するとこうなる
{echo: not found
エラー内容から、最初の { がおかしい事がわかる。これが正解
dash -c 'foo()echo test;} foo'
test
後ろの } はただのノイズだと思われるので、とってあげても動く
dash -c 'foo()echo test; foo'
↑これは POSIX 準拠なので(笑)zshやkshやmkshでも動く
でもbashやyashでは動かない
そこから考えると
dash -c 'foo()echo test;foo' は動くということがわかるし、
dash -c 'foo()echo test;}foo' は
foo()echo test +}foo になるので、 }foo: not found と表示されることも理解できる
zshは空白無くても動く
zsh -c 'foo(){echo test;};foo
test
dashはコンパイルエラー起こらないと思いつつ、実行するとエラーになり
dash -c 'foo(){echo test;}' # コンパイルエラー起こらない
dash -c 'foo(){echo test;};foo' # でも実行すると怒られる
実は"最後の" ; がおかしい
dash -c 'foo(){echo test;} foo' # これを実行するとこうなる
{echo: not found
エラー内容から、最初の { がおかしい事がわかる。これが正解
dash -c 'foo()echo test;} foo'
test
後ろの } はただのノイズだと思われるので、とってあげても動く
dash -c 'foo()echo test; foo'
↑これは POSIX 準拠なので(笑)zshやkshやmkshでも動く
でもbashやyashでは動かない
そこから考えると
dash -c 'foo()echo test;foo' は動くということがわかるし、
dash -c 'foo()echo test;}foo' は
foo()echo test +}foo になるので、 }foo: not found と表示されることも理解できる
172デフォルトの名無しさん
2020/04/17(金) 16:52:28.83ID:nls2b0po >>171
> dash -c 'foo()echo test; foo'
>
> ↑これは POSIX 準拠なので(笑)zshやkshやmkshでも動く
> でもbashやyashでは動かない
それは bash や yash の方が正解
関数定義の本体は複合コマンド(compound command)のみ
https://pubs.opengroup.org/onlinepubs/9699919799/utilities/V3_chap02.html#tag_18_09_05
ちなみに yash や posh はこれに関して、bash よりも分りやすいエラーメッセージを吐く:
% yash -c 'f() echo'
yash -c:1: syntax error: a function body must be a compound command
% posh -c 'f() echo'
posh: f: function definition must use compound command
%
> dash -c 'foo()echo test; foo'
>
> ↑これは POSIX 準拠なので(笑)zshやkshやmkshでも動く
> でもbashやyashでは動かない
それは bash や yash の方が正解
関数定義の本体は複合コマンド(compound command)のみ
https://pubs.opengroup.org/onlinepubs/9699919799/utilities/V3_chap02.html#tag_18_09_05
ちなみに yash や posh はこれに関して、bash よりも分りやすいエラーメッセージを吐く:
% yash -c 'f() echo'
yash -c:1: syntax error: a function body must be a compound command
% posh -c 'f() echo'
posh: f: function definition must use compound command
%
173デフォルトの名無しさん
2020/04/17(金) 17:38:27.88ID:9nBzfuh2 >>172
compound-command は必ずしもグループ化しろとは書かれてないよ
グループ化はオプション
https://pubs.opengroup.org/onlinepubs/9699919799/utilities/V3_chap02.html#tag_18_09_04
compound-command は必ずしもグループ化しろとは書かれてないよ
グループ化はオプション
https://pubs.opengroup.org/onlinepubs/9699919799/utilities/V3_chap02.html#tag_18_09_04
174デフォルトの名無しさん
2020/04/17(金) 19:28:17.38ID:3FstJMua175デフォルトの名無しさん
2020/04/17(金) 19:40:14.03ID:nls2b0po176デフォルトの名無しさん
2020/04/17(金) 19:56:23.51ID:UJSQQO8I え,関数って一行で定義するときは
foo() echo hello;
みたいに波括弧で括る必要ないの?
知らんかった。
foo() echo hello;
みたいに波括弧で括る必要ないの?
知らんかった。
177デフォルトの名無しさん
2020/04/17(金) 19:58:37.78ID:9nBzfuh2 >>175
リンク先見ろ、Grouping Commands って書いてあるだろ
compound-command は
() や {} でグループ化してもいいし、しなくてもいい
単一のコマンドも compound-command
というか、単一のコマンドが compound-command であり
複数のコマンドをまとめる時に Grouping Commands を使う
リンク先見ろ、Grouping Commands って書いてあるだろ
compound-command は
() や {} でグループ化してもいいし、しなくてもいい
単一のコマンドも compound-command
というか、単一のコマンドが compound-command であり
複数のコマンドをまとめる時に Grouping Commands を使う
178デフォルトの名無しさん
2020/04/17(金) 19:59:07.40ID:9nBzfuh2 >>176
本来はね。でもbashで対応してないから事実上諦めるしかない。
本来はね。でもbashで対応してないから事実上諦めるしかない。
179デフォルトの名無しさん
2020/04/17(金) 20:01:55.41ID:9nBzfuh2 >>176
あとグループ化するのに使うのは {} または () なので
foo() { echo hello; } の代わりに
foo() (echo hello) と書いても良い
こっちはbashやyashも対応している。
ただし当然のことながらサブシェルで実行される。
あとグループ化するのに使うのは {} または () なので
foo() { echo hello; } の代わりに
foo() (echo hello) と書いても良い
こっちはbashやyashも対応している。
ただし当然のことながらサブシェルで実行される。
180デフォルトの名無しさん
2020/04/17(金) 20:05:05.86ID:9nBzfuh2 fname ( ) compound-command [io-redirect ...]
の最後からわかるように
foo() { echo hello; } >/dev/null や
foo() (echo hello) >/dev/null とも書ける
もちろん複数行でこのように書いてもいい
関数が出すエラーを全て捨てる場合とかに使える
foo() {
echo hello
} 2>/dev/null
の最後からわかるように
foo() { echo hello; } >/dev/null や
foo() (echo hello) >/dev/null とも書ける
もちろん複数行でこのように書いてもいい
関数が出すエラーを全て捨てる場合とかに使える
foo() {
echo hello
} 2>/dev/null
181デフォルトの名無しさん
2020/04/17(金) 20:07:41.32ID:nls2b0po182デフォルトの名無しさん
2020/04/17(金) 20:13:43.55ID:9nBzfuh2 >>181
なんのために Grouping Commands と別に説明してある思ってる?
Grouping Commands を作るための {} または () が必須じゃないから、
「compound-commands の定義は {} または () で始まる」と*書かれてない*んだよ
なんのために Grouping Commands と別に説明してある思ってる?
Grouping Commands を作るための {} または () が必須じゃないから、
「compound-commands の定義は {} または () で始まる」と*書かれてない*んだよ
183デフォルトの名無しさん
2020/04/17(金) 20:56:24.03ID:xgpGiYXu 2.9.4 Compound Commands
The shell has several programming constructs that are "compound commands", which provide control flow for commands.
Each of these compound commands has a reserved word or control operator at the beginning, and a corresponding terminator reserved word or operator at the end
でその後Compound Commandsとして上げられてるが以下の6つ
- Grouping Commands
- The for Loop
- Case Conditional Construct
- The if Conditional Construct
- The while Loop
- The until Loop
echo helloは開始・終了を示す予約語もなければ、上の6つのどれにも当てはまらないからCompound Commandではない
The shell has several programming constructs that are "compound commands", which provide control flow for commands.
Each of these compound commands has a reserved word or control operator at the beginning, and a corresponding terminator reserved word or operator at the end
でその後Compound Commandsとして上げられてるが以下の6つ
- Grouping Commands
- The for Loop
- Case Conditional Construct
- The if Conditional Construct
- The while Loop
- The until Loop
echo helloは開始・終了を示す予約語もなければ、上の6つのどれにも当てはまらないからCompound Commandではない
184デフォルトの名無しさん
2020/04/17(金) 20:57:55.90ID:xgpGiYXu foo() if true; then echo "foobar"; fi
↑こういうのはOK
↓shellcheckの解説
POSIX allows the body of a function to be any compound command, e.g. foo() for i; do :; done. Since this usage is rare, ShellCheck intentionally requires the body to be { ..; } (or ( ..; )):
https://github.com/koalaman/shellcheck/wiki/SC1064
↑こういうのはOK
↓shellcheckの解説
POSIX allows the body of a function to be any compound command, e.g. foo() for i; do :; done. Since this usage is rare, ShellCheck intentionally requires the body to be { ..; } (or ( ..; )):
https://github.com/koalaman/shellcheck/wiki/SC1064
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 首相官邸前で「戦争あおるな」 台湾有事巡る答弁に抗議 [蚤の市★]
- 高市首相告白「『なめられない服』を選ぶことに数時間を費やしました」「外交交渉でマウント取れる服、買わなくてはいかんかもなぁ」 [ぐれ★]
- 【高市リスク】立民・小西洋之参院議員「高市総理がとんでもない安全保障オンチで外交オンチ」 [ぐれ★]
- 『DOWNTOWN+』会員数50万人突破で見えてきた 松本人志の“月収4ケタ万円”驚愕収入 [阿弥陀ヶ峰★]
- 【赤坂ライブハウス刺傷】逃走していた自衛官の男(43)を殺人未遂の疑いで逮捕 警視庁 被害女性とは知人関係 [Ailuropoda melanoleuca★]
- 【フジ】13年ぶり復活「クイズ$ミリオネア」元日放送決定 挑戦者に菊池風磨&ムロツヨシ、みのもんたさん版傑作選もOA [征夷大将軍★]
- 夜勤終わり風呂なう
- 桃香さん!!
- 【悲報】東京都民さん、20過ぎてるのに自転車に乗っててて大炎上wwwwwwwwwwww女「いい歳した男で自転車に乗るのは知的障がい者だけだよ? [483447288]
- 【悲報】「全国の独身男性2000万人に年間120万円の独身税をかけるだけで農家を守って米の値段を半分にできるんだよ」8万高市 [257926174]
- 習近平や王毅などの中共幹部、「高市答弁」に関していまだ一切言及なし。すまんこっから何が起きるの? [271912485]
- 【悲報】ミスター東大さん、高度な『ずらし』を披露するも愚民には理解されず大炎上wwwwwwwwwwww [455031798]
