シェルスクリプトに関する総合スレッドです。
全般
・荒しは無視しましょう。
・丁寧な姿勢を心掛けましょう。
・ネチケット(死語)を意識しましょう。
・「○○(他の言語)でいいやん」は禁止。他のスレに行ってください。
前スレ: シェルスクリプト総合 その35
https://mevius.5ch.net/test/read.cgi/tech/1606221440/
関連スレ
・【Bash】Windows Subsystem for Linux【WSL】9
https://mao.5ch.net/test/read.cgi/linux/1607589861/
・Bashでプログラミング [転載禁止](c)2ch.net
https://mao.5ch.net/test/read.cgi/linux/1443885102/
・シェルスクリプト総合 その28
https://mevius.5ch.net/test/read.cgi/unix/1533154936/
・zsh その7
https://mevius.5ch.net/test/read.cgi/unix/1337844883/
・過去UNIXで使われていた ksh というシェルについて
https://mevius.5ch.net/test/read.cgi/unix/1582358403/
・【POSIX】UNIXプログラミング【BSD】 [転載禁止](c)2ch.net
https://mevius.5ch.net/test/read.cgi/unix/1443103705/
・おまえら! shell は何を使っているんですか?
https://mevius.5ch.net/test/read.cgi/unix/1012330865/
探検
シェルスクリプト総合 その36
■ このスレッドは過去ログ倉庫に格納されています
2021/02/25(木) 09:20:14.64ID:ZyJLXTlk
748デフォルトの名無しさん
2021/06/26(土) 06:02:48.49ID:m56tn/Vu >>733
# PowerShell
Get-Content "test.csv" | ForEach-Object { $1列目, $2列目, $3列目 = $_.Split(",") ; "$1列目" -replace "$", "," }
PS> gal
# Aliasを使うとこうなる
type "test.csv" | % { $1列目, $2列目, $3列目 = $_.Split(",") ; "$1列目" -replace "$", "," }
# PowerShell
Get-Content "test.csv" | ForEach-Object { $1列目, $2列目, $3列目 = $_.Split(",") ; "$1列目" -replace "$", "," }
PS> gal
# Aliasを使うとこうなる
type "test.csv" | % { $1列目, $2列目, $3列目 = $_.Split(",") ; "$1列目" -replace "$", "," }
749デフォルトの名無しさん
2021/06/26(土) 13:09:52.71ID:pd6KxWqx >>747
UNIX & Linux コマンド・シェルスクリプト リファレンス
https://shellscript.sunone.me/
このサイトはどうだ?
リファレンス名乗ってるけど、シェルスクリプトの基本から
解説してるぞ。
UNIX & Linux コマンド・シェルスクリプト リファレンス
https://shellscript.sunone.me/
このサイトはどうだ?
リファレンス名乗ってるけど、シェルスクリプトの基本から
解説してるぞ。
750デフォルトの名無しさん
2021/06/26(土) 15:02:58.18ID:HkMm3Nsz 書き方間違えた。。
シェルスクリプト学べる講座みたいな意味です。超初心者向けはあるけど、本格的に教えてくれるのないよね?
シェルスクリプト学べる講座みたいな意味です。超初心者向けはあるけど、本格的に教えてくれるのないよね?
751デフォルトの名無しさん
2021/06/26(土) 15:12:45.40ID:pd6KxWqx >>750
本格的、ってどういうもの?
シェル芸みたいなものってことか?
ま、それは確かにないだろうなあ。
ほとんどが秘伝というか口伝みたいなものだから、講座作れるほど網羅している
人ってのがなかなかいないしなあw
本格的、ってどういうもの?
シェル芸みたいなものってことか?
ま、それは確かにないだろうなあ。
ほとんどが秘伝というか口伝みたいなものだから、講座作れるほど網羅している
人ってのがなかなかいないしなあw
752デフォルトの名無しさん
2021/06/26(土) 15:20:25.76ID:15vAhO8I python使えたらシェルスクリプト要らんのでは
753デフォルトの名無しさん
2021/06/26(土) 15:26:57.82ID:pd6KxWqx754デフォルトの名無しさん
2021/06/26(土) 16:20:33.94ID:fSNbZd7z man bash > $HOME/Documents/bash.txt
vi $HOME/Documents/bash.txt
SHELL BUILTIN COMMANDSを検索
man dash > $HOME/Documents/bash.txt
vi $HOME/Documents/bash.txt
Builtinsを検索
vi $HOME/Documents/bash.txt
SHELL BUILTIN COMMANDSを検索
man dash > $HOME/Documents/bash.txt
vi $HOME/Documents/bash.txt
Builtinsを検索
755デフォルトの名無しさん
2021/06/26(土) 16:46:27.14ID:fSNbZd7z man bash-builtins
/検索語句
Nキー:次
Bキー:前
Qキー:終了
/検索語句
Nキー:次
Bキー:前
Qキー:終了
756デフォルトの名無しさん
2021/06/26(土) 16:58:17.32ID:Y3/GrXsT >>752
インストールされてない/したくない環境もあるやろ。
インストールされてない/したくない環境もあるやろ。
757デフォルトの名無しさん
2021/06/26(土) 19:39:26.99ID:6sjjJ5as 本なら、ある。
UNIXシェルスクリプトコマンドブック 第3版、 山下哲典、2015
ファイル・文字列処理なら、Ruby が良い
fileutils モジュールの、DryRun で、実際には実行せずに確認できる。
削除なら、FileUtils::DryRun.rm
UNIXシェルスクリプトコマンドブック 第3版、 山下哲典、2015
ファイル・文字列処理なら、Ruby が良い
fileutils モジュールの、DryRun で、実際には実行せずに確認できる。
削除なら、FileUtils::DryRun.rm
758デフォルトの名無しさん
2021/06/26(土) 20:08:24.78ID:eKFjOqkk >>755
何のためのレスかわからんけど、h 押してみ
何のためのレスかわからんけど、h 押してみ
759デフォルトの名無しさん
2021/06/26(土) 23:12:46.20ID:Y3/GrXsT760デフォルトの名無しさん
2021/06/27(日) 03:00:03.59ID:JLxNdtth h 押すだけで使い方を覚えなくてすむから良いね
761デフォルトの名無しさん
2021/06/27(日) 10:23:28.81ID:kOTo8S0v bashの予約語
! case coproc do done elif else esac fi for function if in select then until while { } time [[ ]]
その中からdashにはない予約語
! [[ ]] coproc function in select time
! case coproc do done elif else esac fi for function if in select then until while { } time [[ ]]
その中からdashにはない予約語
! [[ ]] coproc function in select time
762デフォルトの名無しさん
2021/06/27(日) 13:34:55.40ID:eeXftvTT763デフォルトの名無しさん
2021/06/28(月) 09:24:33.50ID:7rguVsVy >>747
名著「入門UNIXシェルプログラミング―シェルの基礎から学ぶUNIXの世界」
名著「入門UNIXシェルプログラミング―シェルの基礎から学ぶUNIXの世界」
764デフォルトの名無しさん
2021/06/28(月) 15:58:41.95ID:PrwZxveA functionはdashにはないので関数定義で
function 関数名 () { }
と書けない。関数をつくるときはfunctionを省く。
function 関数名 () { }
と書けない。関数をつくるときはfunctionを省く。
765デフォルトの名無しさん
2021/07/04(日) 23:04:42.22ID:B2MxyBfM Windows10ではC:\Windows\Microsoft.NET\Framework\<バージョン>以下にvbc.exeが標準インストールされてるけど
Windows11のInsider Preview版でも入ってる?
Windows11のInsider Preview版でも入ってる?
766デフォルトの名無しさん
2021/07/07(水) 15:15:00.04ID:y8n+ZYbw シェルスクリプトの引数として文字列を渡すとき、空白等を含むものはダブルクォーテーションで包んで渡してます
このダブルクォーテーションを省略できたら楽なのですが、行末 (セミコロン) まで丸々一つの文字列と見なす方法ありますか
このダブルクォーテーションを省略できたら楽なのですが、行末 (セミコロン) まで丸々一つの文字列と見なす方法ありますか
767デフォルトの名無しさん
2021/07/07(水) 17:53:02.55ID:S2V3/enC 上手く引数をクオートしてやればいいんじゃね、bashには最初からそんなシェル関数が定義されてるので、参考に
declare -p等の出力ね
ただしパースが不可逆な処理である以上、完全な再構築は不可能
自明な例:cmd 'a'とcmd a
行内コメントとヒストリ、スクリプト中のエイリアス展開等を使っていいならもっと攻められる
aliasは全ての展開に優先するので何でもできる
func () { history 1 | 引数処理}
alias getcmdline='func #'
getcmdline ) any' illegal " args
スクリプト中なら
set -o history
shopt -s expand_alias
が必要
declare -p等の出力ね
ただしパースが不可逆な処理である以上、完全な再構築は不可能
自明な例:cmd 'a'とcmd a
行内コメントとヒストリ、スクリプト中のエイリアス展開等を使っていいならもっと攻められる
aliasは全ての展開に優先するので何でもできる
func () { history 1 | 引数処理}
alias getcmdline='func #'
getcmdline ) any' illegal " args
スクリプト中なら
set -o history
shopt -s expand_alias
が必要
768デフォルトの名無しさん
2021/07/07(水) 17:59:42.48ID:S2V3/enC pwshにはズバリstop persing operator --%があるね
769デフォルトの名無しさん
2021/07/07(水) 18:50:47.92ID:S2V3/enC ;で止めるのはexprやパラメータ置換で;以降を切り出しておいて、ラップするコマンドの処理が済んだ後でeval に渡せばいいかな
&等他の制御構造も使いたいとなるとキリがないけど
下手に通常コマンドのように見せかけるのは混乱の元にもなるので、割り切った方がいい
&等他の制御構造も使いたいとなるとキリがないけど
下手に通常コマンドのように見せかけるのは混乱の元にもなるので、割り切った方がいい
770デフォルトの名無しさん
2021/07/07(水) 19:10:07.39ID:2/exV/Wq たかが''で括る手間を省く為に、あまりアナーキーなことをするのは…
771デフォルトの名無しさん
2021/07/07(水) 19:41:57.72ID:JjiOZstZ だよな
772デフォルトの名無しさん
2021/07/07(水) 21:59:30.78ID:rfVJ+RI1 これ動くんだ…
773デフォルトの名無しさん
2021/07/07(水) 22:09:19.52ID:lJn1zakl インラインコメントのつもりで付けた#以降が読まれる可能性があるけど、普通スクリプト中のエイリアスは無効だから大丈夫なのね
774デフォルトの名無しさん
2021/07/10(土) 17:17:24.24ID:QtAhxdi9 w3mブラウザを使っています。
w3mを起動した後の自動処理ってシェルでどのように書けばいいでしょうか??
毎回タブを作ってURL01とURL02を開くなどをやりたいのですが
bashrcにaliasやfunctionを書くことも考えましたが、w3m起動後の処理はできないので困っております。
w3mを起動した後の自動処理ってシェルでどのように書けばいいでしょうか??
毎回タブを作ってURL01とURL02を開くなどをやりたいのですが
bashrcにaliasやfunctionを書くことも考えましたが、w3m起動後の処理はできないので困っております。
775デフォルトの名無しさん
2021/07/10(土) 22:08:01.96ID:icE46eu/ 例えば、Ruby, Selenium Webdriver で、
Chrome なら操作できるけど、そういうマイナーなブラウザには対応していないかも
Rubyの他に、JavaScript でも書ける。
Selenium IDE と言うのもあるらしい
url_0 = "どこかのURL"
url_1 = "どこかのURL"
driver.navigate.to url_0 # url_0 のタブを開く
driver.execute_script( "window.open()" ) # 新しいタブを開く
driver.switch_to.window( driver.window_handles.last ) # 新しいタブへ移動する
driver.navigate.to url_1 # 新しいタブ内で、url_1 を開く
Chrome なら操作できるけど、そういうマイナーなブラウザには対応していないかも
Rubyの他に、JavaScript でも書ける。
Selenium IDE と言うのもあるらしい
url_0 = "どこかのURL"
url_1 = "どこかのURL"
driver.navigate.to url_0 # url_0 のタブを開く
driver.execute_script( "window.open()" ) # 新しいタブを開く
driver.switch_to.window( driver.window_handles.last ) # 新しいタブへ移動する
driver.navigate.to url_1 # 新しいタブ内で、url_1 を開く
776デフォルトの名無しさん
2021/07/10(土) 23:45:50.65ID:/14ZuXuK TTY操作ってんならシェルスクリプトではなくexpectスクリプトでしょ
Linux/Unix/プログラム各板見たがexpectスレはないみたいで恐縮ではあるが
Linux/Unix/プログラム各板見たがexpectスレはないみたいで恐縮ではあるが
777デフォルトの名無しさん
2021/07/11(日) 02:11:09.53ID:lZiRxAj0 Ruby にも、expect ある
778デフォルトの名無しさん
2021/07/11(日) 06:05:30.31ID:KqeUxmyI 間に擬似端末を挟む方法で w3m や lynx を自動化したことならあるけど
w3m には自動化のためのインターフェースがあるみたいだよ。
その名を "Local CGI" という。
残念ながら man には書かれていないが、普通にダウンロードすれば
doc-jp/MANUAL.html に書いてある。
サンプルコードは Bonus/ にある。
ご所望のことが全部できるかは判らないが
他の方法よりは確実な動作を期待できそうだ。
w3m には自動化のためのインターフェースがあるみたいだよ。
その名を "Local CGI" という。
残念ながら man には書かれていないが、普通にダウンロードすれば
doc-jp/MANUAL.html に書いてある。
サンプルコードは Bonus/ にある。
ご所望のことが全部できるかは判らないが
他の方法よりは確実な動作を期待できそうだ。
779デフォルトの名無しさん
2021/07/12(月) 18:24:55.56ID:f04FcsMT780デフォルトの名無しさん
2021/07/15(木) 16:46:27.48ID:IbROtnW3 >/dev/nullでゴミ捨ててるコードをよく見るけど、
|:はダメなの?個人的によく使うんだけど
標準入力受け付けない:があったりするのだろうか
|:はダメなの?個人的によく使うんだけど
標準入力受け付けない:があったりするのだろうか
781デフォルトの名無しさん
2021/07/15(木) 16:49:38.15ID:IbROtnW3 もちろんステータス見たい時はイエスマンの:はダメだけど、単に出力全部捨てたいケースね
標準エラーはパイプを通らないし、標準出力は:が食べる
標準エラーはパイプを通らないし、標準出力は:が食べる
782デフォルトの名無しさん
2021/07/15(木) 17:56:15.08ID:CDvGwwEr 全部捨ててるのではなくて
最初に書いた時にSIGPIPEで死んでる
それに無駄にfork/cloneしてる
最初に書いた時にSIGPIPEで死んでる
それに無駄にfork/cloneしてる
783デフォルトの名無しさん
2021/07/19(月) 08:43:54.11ID:7DxAXQZB 【完全解説】ブログで月1万円稼ぐ具体的な方法!【アニメ動画】
https://www.youtube.com/watch?v=M_Umbak9icg&t=401s
【ブログの始め方完全解説!】聞くだけでOK!初心者でもわかるよう基本から超丁寧に解説!【これだけでOK!】
https://www.youtube.com/watch?v=M1lUsqp7lgY
【凡人でもOK】何の実績も強みも無い人がブログで稼ぐ方法
https://www.youtube.com/watch?v=OODFq6YIbYg
【雑記ブログの始め方】「収益化させやすい」運営方法を5ステップで解説【ワードプレス】
https://www.youtube.com/watch?v=WWU_Akj2onM&t=2s
ブログ運営のおすすめ必須ツール11選!【これだけで月100万円いけます】
https://www.youtube.com/watch?v=w1Oj_WIkNJs
【こんな人は伸びる!】上手くいくブロガーの特徴ベスト5!【月収100万超えブロガーが徹底解説!】
https://www.youtube.com/watch?v=nJG4SsoIN0w
【知らないと失敗する!】ブログで稼ぐための目標設定をプロが解説!
https://www.youtube.com/watch?v=wvWFGZ9hPIo
https://www.youtube.com/watch?v=M_Umbak9icg&t=401s
【ブログの始め方完全解説!】聞くだけでOK!初心者でもわかるよう基本から超丁寧に解説!【これだけでOK!】
https://www.youtube.com/watch?v=M1lUsqp7lgY
【凡人でもOK】何の実績も強みも無い人がブログで稼ぐ方法
https://www.youtube.com/watch?v=OODFq6YIbYg
【雑記ブログの始め方】「収益化させやすい」運営方法を5ステップで解説【ワードプレス】
https://www.youtube.com/watch?v=WWU_Akj2onM&t=2s
ブログ運営のおすすめ必須ツール11選!【これだけで月100万円いけます】
https://www.youtube.com/watch?v=w1Oj_WIkNJs
【こんな人は伸びる!】上手くいくブロガーの特徴ベスト5!【月収100万超えブロガーが徹底解説!】
https://www.youtube.com/watch?v=nJG4SsoIN0w
【知らないと失敗する!】ブログで稼ぐための目標設定をプロが解説!
https://www.youtube.com/watch?v=wvWFGZ9hPIo
784デフォルトの名無しさん
2021/07/19(月) 20:25:38.28ID:Vxw+8mZv makeについて質問。
makeを多段に実行したとき、ログに「make[...]:」とか段数が出力されますが、あの段数をリセットする方法はありますか?
ログはmake: → make[1]: → make[2]: → make[3]:と深くなるにつれて出力が変わりますが、たとえば3段目でリセットして、make: → make[1]: → make: → make[1]:にする、みたいな。
makeを多段に実行したとき、ログに「make[...]:」とか段数が出力されますが、あの段数をリセットする方法はありますか?
ログはmake: → make[1]: → make[2]: → make[3]:と深くなるにつれて出力が変わりますが、たとえば3段目でリセットして、make: → make[1]: → make: → make[1]:にする、みたいな。
785デフォルトの名無しさん
2021/07/19(月) 21:17:27.86ID:1Cvv5Nld makeスクリプトの中に
sh -ec make
挟むとか
sh -ec make
挟むとか
786デフォルトの名無しさん
2021/07/20(火) 10:34:00.51ID:KkKHDI5m787デフォルトの名無しさん
2021/07/20(火) 10:34:49.18ID:KkKHDI5m788デフォルトの名無しさん
2021/07/30(金) 18:22:37.15ID:7AkGA5GJ スクレイピングしたいんですけど何を勉強すればいいですか
不正アクセスに問われたりしないでしょうか?
セキュリティ対策はどのようなことに注意すればよいでしょうか?
不正アクセスに問われたりしないでしょうか?
セキュリティ対策はどのようなことに注意すればよいでしょうか?
789デフォルトの名無しさん
2021/07/30(金) 18:25:38.46ID:PFQXQc2n 誤爆だろな
790デフォルトの名無しさん
2021/07/30(金) 19:56:33.31ID:pVd7PqHN 他人は誰も何も保証などしないし責任など取ってくれないので法律について自分で調べて安全圏と思える範囲内でやるしかない
791デフォルトの名無しさん
2021/08/01(日) 08:18:52.13ID:gdH7Qy0E なんでわざわざシェルスクリプトでスクレイピングするのか?
792デフォルトの名無しさん
2021/08/01(日) 09:34:42.67ID:4xiWMys0 wgetやcurlとjson
HTMLを加工しデータを抽出するためにsed、grep
不正アクセスのリスクはどこにでもある
相手次第でしかないから
過去に図書館のシステムを作ったエンジニアが
蔵書を調べたいという目的で負荷をかけない範囲でアクセスしてたら
訴えられたってのあったな
自分がやってたのを例に挙げると
配信サイトからの動画の一括ダウンロード
配信履歴の取得などか
動画はまあそのものだが
HTMLの履歴ページにアクセスしてページを繰って
回数、時間などの集計をして傾向を分析してた
id入れれば全部やってくれるから便利だったけど
一連の処理をするツールは自分で作った
HTMLを加工しデータを抽出するためにsed、grep
不正アクセスのリスクはどこにでもある
相手次第でしかないから
過去に図書館のシステムを作ったエンジニアが
蔵書を調べたいという目的で負荷をかけない範囲でアクセスしてたら
訴えられたってのあったな
自分がやってたのを例に挙げると
配信サイトからの動画の一括ダウンロード
配信履歴の取得などか
動画はまあそのものだが
HTMLの履歴ページにアクセスしてページを繰って
回数、時間などの集計をして傾向を分析してた
id入れれば全部やってくれるから便利だったけど
一連の処理をするツールは自分で作った
793デフォルトの名無しさん
2021/08/01(日) 10:34:45.80ID:GhkJ8vMz >>792
不正アクセスの意味すら知らんやつがスクレイピングしたらだめだぞ
不正アクセスの意味すら知らんやつがスクレイピングしたらだめだぞ
794デフォルトの名無しさん
2021/08/01(日) 11:26:43.15ID:boMMlR1G795デフォルトの名無しさん
2021/08/01(日) 12:49:15.25ID:ekL5DYUO googleが関わっているサイトはそもそもスクレイピングをさせないよね
自動的にやっていることが分かった瞬間にアクセスを出来なくしている
アルゴリズムは非公開
時間間隔を見ているとかそういう単純なものではないらしい
自動的にやっていることが分かった瞬間にアクセスを出来なくしている
アルゴリズムは非公開
時間間隔を見ているとかそういう単純なものではないらしい
796デフォルトの名無しさん
2021/08/01(日) 13:16:33.62ID:RrS7g+U3 youtubeとか普通に出来てるんだが
特に規制くらったりは無いな
特に規制くらったりは無いな
797デフォルトの名無しさん
2021/08/01(日) 21:46:14.00ID:dQpg7mz5 google検索を自動にしようとすると規制を受けるよ
798デフォルトの名無しさん
2021/08/04(水) 02:42:48.46ID:bE85vB+i zshで走るスクリプトをもらったんですが、bashで走らせるとどこかでエラーになるようです。
一応bashで走るようにしたいんですが、スクリプトのどういう部分をチェックしたらいい、みたいの
ってあります?
一応bashで走るようにしたいんですが、スクリプトのどういう部分をチェックしたらいい、みたいの
ってあります?
799デフォルトの名無しさん
2021/08/04(水) 04:05:35.99ID:rVD3iYVZ ググればある
問題点を絞り込めないんだったら、Webで長く書いてくれてるのを読もう
問題点を絞り込めないんだったら、Webで長く書いてくれてるのを読もう
800デフォルトの名無しさん
2021/08/04(水) 10:23:51.95ID:sXlocsw8 1行ずつ貼り付けて実行してエラー箇所確認できないの
801デフォルトの名無しさん
2021/08/04(水) 14:54:33.64ID:oTWoXRyh いやーここの皆さんならエスパーしていただけるかと思ったのですが。
とりあえず line 25: zparseopts: command not found と出ました。
とりあえず line 25: zparseopts: command not found と出ました。
802デフォルトの名無しさん
2021/08/04(水) 15:57:29.74ID:ZkQ7EvI3 zsh固有のを使ってるつもりが無くてもbashで動かないのは、
いくつかある動作の僅かな差異でもありえるし、そのどれを使ってもわからんから、
エスパーは無理だろな
command not found やん。モロzsh固有の使っててやん
zsh固有のなんてもっとあるんだから、エスパーは尚更無理だろうな
getopt/getoptsを書き換えればいいだろう、その部分の話なら
他にもあるんだったら、command not foundもわからないんだったら自力では山が高いとしか思えんけど、自力で頑張れ
いくつかある動作の僅かな差異でもありえるし、そのどれを使ってもわからんから、
エスパーは無理だろな
command not found やん。モロzsh固有の使っててやん
zsh固有のなんてもっとあるんだから、エスパーは尚更無理だろうな
getopt/getoptsを書き換えればいいだろう、その部分の話なら
他にもあるんだったら、command not foundもわからないんだったら自力では山が高いとしか思えんけど、自力で頑張れ
803デフォルトの名無しさん
2021/08/04(水) 17:01:53.30ID:vF9ccavM つーか、何が起きるかわからんのに、別シェルのスクリプトをわからんままによく実行できるな。w
メチャクチャに壊されるかもなのに。
メチャクチャに壊されるかもなのに。
804デフォルトの名無しさん
2021/08/04(水) 17:57:21.23ID:f2ZFKBK8 zshって真面目にドキュメント読もうとすると
機能多すぎて嫌になるよねw
機能多すぎて嫌になるよねw
805デフォルトの名無しさん
2021/08/04(水) 17:57:42.62ID:f2ZFKBK8 おや?chromeから書き込めた???
806デフォルトの名無しさん
2021/08/04(水) 17:58:08.01ID:f2ZFKBK8 あ、janeからも書き込めたw
禁止解除されたかwww
禁止解除されたかwww
807デフォルトの名無しさん
2021/08/04(水) 17:59:30.91ID:f2ZFKBK8 っていうか普通にzshインストールすりゃいいだけじゃん
808デフォルトの名無しさん
2021/08/04(水) 18:18:14.91ID:VUbcTRKP 別にメチャクチャに壊されても構わんのだろう?
809デフォルトの名無しさん
2021/08/04(水) 18:21:21.06ID:f2ZFKBK8 そのシェルスクリプトの最初に
if [ $BASH_VERSION ]; then
sudo apt-get update && sudo apt-get install -y zsh
zsh "$0" "$@"
fi
とか書いておけば動くんじゃね?www
if [ $BASH_VERSION ]; then
sudo apt-get update && sudo apt-get install -y zsh
zsh "$0" "$@"
fi
とか書いておけば動くんじゃね?www
810デフォルトの名無しさん
2021/08/04(水) 19:21:42.69ID:ZkQ7EvI3811デフォルトの名無しさん
2021/08/04(水) 19:31:41.64ID:f2ZFKBK8 zshで動くものをbashで動かしたら何が起きるかわからんじゃん
そのzshスクリプトはエラーでちゃんと停止するんか?
想定とは違うディレクトリで中途半端に動いたりしないんか?
そのzshスクリプトはエラーでちゃんと停止するんか?
想定とは違うディレクトリで中途半端に動いたりしないんか?
812デフォルトの名無しさん
2021/08/04(水) 19:36:30.26ID:ZkQ7EvI3 >何をするのかもわかってるだろう
のうちだろ
動作させないと何が問題かわからんし、そもそもどの程度の知識かもわからんし
仮に何かあっても、全く何もわからないのにbashで動くようにしたいという望みを持った勉強代だなw
動作させないと何が問題かわからんのだから、問いに対して動かしてみろと言うのは当たり前の話でしかないだろう
何を言いたいのかわからんぞ
のうちだろ
動作させないと何が問題かわからんし、そもそもどの程度の知識かもわからんし
仮に何かあっても、全く何もわからないのにbashで動くようにしたいという望みを持った勉強代だなw
動作させないと何が問題かわからんのだから、問いに対して動かしてみろと言うのは当たり前の話でしかないだろう
何を言いたいのかわからんぞ
813デフォルトの名無しさん
2021/08/04(水) 19:56:41.44ID:oNOmhdBC どうなるか分からんけどとりあえず動かしたいならdockerコンテナ上で試せばいい
814デフォルトの名無しさん
2021/08/04(水) 20:04:22.89ID:vF9ccavM815デフォルトの名無しさん
2021/08/04(水) 20:09:58.00ID:ZkQ7EvI3816デフォルトの名無しさん
2021/08/04(水) 21:08:01.90ID:vF9ccavM817デフォルトの名無しさん
2021/08/04(水) 21:28:34.60ID:ZkQ7EvI3 >>816
何が知らんがなだよw
「メチャクチャ」に「壊される」からは悪意を想像しても不思議ではないと思うけどなあ
そんななんかダメなとこあったらメチャクチャに壊すスクリプトもそう無いだろうからな。そんなのばっか書いてるの?
何が知らんがなだよw
「メチャクチャ」に「壊される」からは悪意を想像しても不思議ではないと思うけどなあ
そんななんかダメなとこあったらメチャクチャに壊すスクリプトもそう無いだろうからな。そんなのばっか書いてるの?
818デフォルトの名無しさん
2021/08/05(木) 00:09:48.84ID:r/zZzNU4 >>817
超ふしぎじゃ。
壊す主体は、動作の読めないスクリプトに決まってるやろ。
読解力ゼロなんか。w
> そんななんかダメなとこあったらメチャクチャに壊すスクリプトもそう無いだろうからな。そんなのばっか書いてるの?
たまたまrm *になるだけでおしまいやぞ?
超ふしぎじゃ。
壊す主体は、動作の読めないスクリプトに決まってるやろ。
読解力ゼロなんか。w
> そんななんかダメなとこあったらメチャクチャに壊すスクリプトもそう無いだろうからな。そんなのばっか書いてるの?
たまたまrm *になるだけでおしまいやぞ?
819デフォルトの名無しさん
2021/08/05(木) 02:16:14.66ID:uXuSxWIZ >>818
何を言っているんだかな
何が「主体」だか、当たり前だろ。その主体に悪意があるかもしれないって話だろう
「メチャクチャ」に「壊される」が悪意を持って書かれたスクリプトを表すと読めても不思議ではないって話なんだが
読めないのはどっちなんだかなw
たまたまとか頻度がわからんな。すぐにそんなの想像してしまうぐらいの頻度で書いてるのか?w
とか、もうアレだけどw とりあえず単なる杞憂でしかないのは質問者の最初のレスで明らかだし、自己責任の範囲。やってくれないとレスしようがないし、
やってちょっとはその具体的な実行結果を出してくれたことにより、原因他が明確(*)になってんだから、ただの蛇足もこれまでにしとこな
*)お前の最初のレスもそれにより=ほとんど何も知らない人だったとわかってだろう?w
何を言っているんだかな
何が「主体」だか、当たり前だろ。その主体に悪意があるかもしれないって話だろう
「メチャクチャ」に「壊される」が悪意を持って書かれたスクリプトを表すと読めても不思議ではないって話なんだが
読めないのはどっちなんだかなw
たまたまとか頻度がわからんな。すぐにそんなの想像してしまうぐらいの頻度で書いてるのか?w
とか、もうアレだけどw とりあえず単なる杞憂でしかないのは質問者の最初のレスで明らかだし、自己責任の範囲。やってくれないとレスしようがないし、
やってちょっとはその具体的な実行結果を出してくれたことにより、原因他が明確(*)になってんだから、ただの蛇足もこれまでにしとこな
*)お前の最初のレスもそれにより=ほとんど何も知らない人だったとわかってだろう?w
820デフォルトの名無しさん
2021/08/05(木) 08:32:13.08ID:RD0C5s2g ども、801です、盛り上がらせてしまいすみません。
どちらかというと興味として、素朴に、zshもbashもshベースで割と簡単に移植できるのかな? と
思ったんですが、結局それはNOってことですかね?
ちなみにzparseoptsというのはあからさまにzshの関数ぽいですが、
他に、どうやら変数(の中身)の展開に違いがある? ような感じでスクリプト中で呼ばれるコマンド
の引数に正しい値が渡らなかったりしてるようです。
どちらかというと興味として、素朴に、zshもbashもshベースで割と簡単に移植できるのかな? と
思ったんですが、結局それはNOってことですかね?
ちなみにzparseoptsというのはあからさまにzshの関数ぽいですが、
他に、どうやら変数(の中身)の展開に違いがある? ような感じでスクリプト中で呼ばれるコマンド
の引数に正しい値が渡らなかったりしてるようです。
821デフォルトの名無しさん
2021/08/05(木) 09:00:33.95ID:zI5dwTpx ・POSIX(sh)のだけ使ってる
・bashにもzshにもあるのを使ってる
は、問題があったら調整ちょっと手直し程度
・zshにしかないのを使ってる
は、当然、該当部分の書き換えが必要
少しは知っているのならYESだが、
ちょっと何も知らないようなので自分で勉強する気やる気があるのかによる。今はNOだろな
・bashにもzshにもあるのを使ってる
は、問題があったら調整ちょっと手直し程度
・zshにしかないのを使ってる
は、当然、該当部分の書き換えが必要
少しは知っているのならYESだが、
ちょっと何も知らないようなので自分で勉強する気やる気があるのかによる。今はNOだろな
822デフォルトの名無しさん
2021/08/05(木) 09:53:44.33ID:r/zZzNU4823デフォルトの名無しさん
2021/08/05(木) 10:12:10.01ID:hsHiTAxc shベースはPOSIX shベースって言えばいいと思うけど
bashとzshに共通のものってなんて言えばいいんだろうね
bashとzshに共通のものってなんて言えばいいんだろうね
824デフォルトの名無しさん
2021/08/05(木) 13:21:07.18ID:zot0pp1g どちらもkshの美味しいとこ取りってとこ?
825デフォルトの名無しさん
2021/08/05(木) 16:55:00.26ID:zI5dwTpx826デフォルトの名無しさん
2021/08/05(木) 17:17:04.23ID:zI5dwTpx >>823,824
bash/zshフレンドリー?w
共通仕様の公式なドキュメントがあるわけでもなく、書いた人の知見頼りだろから、そう何か明確な名称的なのはなさげかなあ
kshからのが多そうね。bashが最初でzshでも採用ってなかったかなあ
bash/zshフレンドリー?w
共通仕様の公式なドキュメントがあるわけでもなく、書いた人の知見頼りだろから、そう何か明確な名称的なのはなさげかなあ
kshからのが多そうね。bashが最初でzshでも採用ってなかったかなあ
827デフォルトの名無しさん
2021/08/05(木) 18:09:04.60ID:r/zZzNU4828デフォルトの名無しさん
2021/08/05(木) 18:11:34.02ID:zI5dwTpx829デフォルトの名無しさん
2021/08/05(木) 19:53:25.65ID:r/zZzNU4 >>828
おまえがな!w
おまえがな!w
830デフォルトの名無しさん
2021/08/05(木) 21:42:19.84ID:2EEp5i6b ばーかばーか
831デフォルトの名無しさん
2021/08/05(木) 22:23:46.98ID:zI5dwTpx832デフォルトの名無しさん
2021/08/05(木) 23:29:03.88ID:vcYli3BC setコマンドで位置パラメータを指定するときに、
引用符でかこわれていない変数がフィールド分割されるかどうかって決まってたっけ?
setの仕様にはそれらしき記述はなし。
https://pubs.opengroup.org/onlinepubs/9699919799/utilities/V3_chap02.html#tag_18_25
BashやYashでは分割されて,Dashでは分割されない。
$ bash -c '
set -- "a b c" "d e f"
set -- $1 "$@"
echo $1
'
→a
$ yash -c '
set -- "a b c" "d e f"
set -- $1 "$@"
echo $1
'
→a
$ dash -c '
set -- "a b c" "d e f"
set -- $1 "$@"
echo $1
'
→a b c
引用符でかこわれていない変数がフィールド分割されるかどうかって決まってたっけ?
setの仕様にはそれらしき記述はなし。
https://pubs.opengroup.org/onlinepubs/9699919799/utilities/V3_chap02.html#tag_18_25
BashやYashでは分割されて,Dashでは分割されない。
$ bash -c '
set -- "a b c" "d e f"
set -- $1 "$@"
echo $1
'
→a
$ yash -c '
set -- "a b c" "d e f"
set -- $1 "$@"
echo $1
'
→a
$ dash -c '
set -- "a b c" "d e f"
set -- $1 "$@"
echo $1
'
→a b c
833デフォルトの名無しさん
2021/08/05(木) 23:45:20.11ID:r/zZzNU4834デフォルトの名無しさん
2021/08/06(金) 04:00:19.09ID:rcBy4jaU835デフォルトの名無しさん
2021/08/06(金) 14:52:24.37ID:j92KspJx836デフォルトの名無しさん
2021/08/06(金) 15:08:57.47ID:rcBy4jaU >>835
あのさぁ、なんで実行結果を書かないの?
やってみればすぐわかるだろ
$ bash -c '
> a="1 2 3"
> printf "/%s/" $a
> '
/1//2//3/
dash -c '
> a="1 2 3"
> printf "/%s/" $a
> '
/1//2//3/
まーーーーーーーーーったく同じ
あのさぁ、なんで実行結果を書かないの?
やってみればすぐわかるだろ
$ bash -c '
> a="1 2 3"
> printf "/%s/" $a
> '
/1//2//3/
dash -c '
> a="1 2 3"
> printf "/%s/" $a
> '
/1//2//3/
まーーーーーーーーーったく同じ
837デフォルトの名無しさん
2021/08/06(金) 17:19:21.97ID:j92KspJx >>836
いやさ,それの実行結果が一緒なのに,
$ bash -c '
set -- "a b c" "d e f"
set -- $1 "$@"
echo $1
'
→a
$ dash -c '
set -- "a b c" "d e f"
set -- $1 "$@"
echo $1
'
→a b c
こうなるのはおかしいだろってことだよ。
話わかってるか?
いやさ,それの実行結果が一緒なのに,
$ bash -c '
set -- "a b c" "d e f"
set -- $1 "$@"
echo $1
'
→a
$ dash -c '
set -- "a b c" "d e f"
set -- $1 "$@"
echo $1
'
→a b c
こうなるのはおかしいだろってことだよ。
話わかってるか?
838デフォルトの名無しさん
2021/08/06(金) 17:26:48.38ID:rcBy4jaU 消えな。いちいちデマ流すな。
dash -c '
set -- "a b c" "d e f"
set -- $1 "$@"
echo $1
'
a
dash -c '
set -- "a b c" "d e f"
set -- $1 "$@"
echo $1
'
a
839デフォルトの名無しさん
2021/08/06(金) 19:29:06.94ID:mgQwZ+tq dashで>>832見たとき試した時は、
a b c
になったけど、しばらくしたらなぜかw、
a
になるようになった、にしかならないようになった
とりあえず、現在は a b c は気のせい/何かの間違いだなと思ってるw
(多分なんかの環境値かなあ??)
メイン環境ではこんなんだったけど、ほぼあんま使わないクリーンに近いUbuntu(VM)でも a だからな
zshはデフォでは、
a b c
emulate posix でも a b c、emulate bash で a
posix でも a になるべきなんだろうな
単に shwordsplit on にするだけだけど emulate posix 時オプションセットのバグかなあ
a b c
になったけど、しばらくしたらなぜかw、
a
になるようになった、にしかならないようになった
とりあえず、現在は a b c は気のせい/何かの間違いだなと思ってるw
(多分なんかの環境値かなあ??)
メイン環境ではこんなんだったけど、ほぼあんま使わないクリーンに近いUbuntu(VM)でも a だからな
zshはデフォでは、
a b c
emulate posix でも a b c、emulate bash で a
posix でも a になるべきなんだろうな
単に shwordsplit on にするだけだけど emulate posix 時オプションセットのバグかなあ
840デフォルトの名無しさん
2021/08/06(金) 19:38:55.34ID:rcBy4jaU 自分のミスを素直に認められるようになろうな
841デフォルトの名無しさん
2021/08/06(金) 21:35:38.59ID:mgQwZ+tq 俺は ID:j92KspJx でないからな
842デフォルトの名無しさん
2021/08/06(金) 23:44:34.47ID:j92KspJx843デフォルトの名無しさん
2021/08/07(土) 01:06:35.02ID:m9mcPIVQ お前もある意味勘違い(他の環境でなり試せばわかること)で騒いでいたんだから、
何をなんかその嫌らしいことすんなよ
何をなんかその嫌らしいことすんなよ
844デフォルトの名無しさん
2021/08/07(土) 01:06:57.62ID:m9mcPIVQ 俺は ID:mgQwZ+tq なw
845デフォルトの名無しさん
2021/08/07(土) 01:50:03.69ID:m9mcPIVQ >>839
>emulate posix でも a b c、emulate bash で a
>posix でも a になるべきなんだろうな
>単に shwordsplit on にするだけだけど emulate posix 時オプションセットのバグかなあ
posix shell を emulate する場合は posix ではなく sh か
じゃあ、psoix はなんなんねん、イマイチわからない。もしかしてそんなの無いとかか??w
emulate sh にしたら、
shwordsplit on
になるかと思いきや、
noshwordsplit off
って、shwordsplitに変わってnoshwordsplitに(同じだが)。そんなにoffに拘りたいのか
なかなかクセが強い感じw
ほぼzshネタ。でも、zshでposix shell互換にするにはというお話でした
>emulate posix でも a b c、emulate bash で a
>posix でも a になるべきなんだろうな
>単に shwordsplit on にするだけだけど emulate posix 時オプションセットのバグかなあ
posix shell を emulate する場合は posix ではなく sh か
じゃあ、psoix はなんなんねん、イマイチわからない。もしかしてそんなの無いとかか??w
emulate sh にしたら、
shwordsplit on
になるかと思いきや、
noshwordsplit off
って、shwordsplitに変わってnoshwordsplitに(同じだが)。そんなにoffに拘りたいのか
なかなかクセが強い感じw
ほぼzshネタ。でも、zshでposix shell互換にするにはというお話でした
846デフォルトの名無しさん
2021/08/07(土) 03:07:17.12ID:UOc5M9xg zshでemulate bachfileってやったら
バッチファイルモードになったYO!
バッチファイルモードになったYO!
847デフォルトの名無しさん
2021/08/07(土) 08:27:51.67ID:m9mcPIVQ なる。 zsh|sh|ksh|csh だけか
以外ではエラーにならずに zsh が指定されたとみなすか
起動時とのでオプション変わるから別のオプションセットがセットされてんのかと思った
以外ではエラーにならずに zsh が指定されたとみなすか
起動時とのでオプション変わるから別のオプションセットがセットされてんのかと思った
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 一律現金給付も消費減税もなし 高市内閣の経済対策に割れる世論 [蚤の市★]
- 空自機レーダー照射、音声データ公開 中国 ★3 [蚤の市★]
- 日銀「歴史的」利上げ迫る 35年ぶりの年間上げ幅、0.5%の壁を突破 [蚤の市★] [蚤の市★]
- 津波警報の発表中にグーグル検索、AIが「すべて解除」と誤情報 [蚤の市★]
- 【YouTuber】バイク事故で入院のゆたぼん、振込で「お見舞金」募る [muffin★]
- 低所得層のマクドナルド離れが深刻に 広がる「ファストフード格差」の真相 米国 [少考さん★]
- 中国大使さん、麻生太郎を『この政治屋』と名指しし正論長文を投稿。 [271912485]
- 【実況】博衣こよりのえちえち朝活🧪 2
- 【実況】博衣こよりのえちえち朝活🧪
- 中国「もはや高市の謝罪や撤回で済まされるフェーズは過ぎ去った。辞任以外の選択肢ない」 [271912485]
- 【高市悲報】日本人のTikTokアカウントが続々収益化剥奪中!!乞食どもざまああああああああwwwwwww [394917828]
- 残クレマイホーム爆誕 [715715613]
