シェルスクリプトに関する総合スレッドです。
全般
・荒しは無視しましょう。
・丁寧な姿勢を心掛けましょう。
・ネチケット(死語)を意識しましょう。
・「○○(他の言語)でいいやん」は禁止。他のスレに行ってください。
前スレ: シェルスクリプト総合 その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
634デフォルトの名無しさん
2021/05/19(水) 13:20:50.01ID:isp/WQPk >>622
> またシェルスクリプトでなくても、タブは単独の区切り文字としてはベスト。
シェルスクリプトにおいてはタブ区切りはベストではない。
なぜなら空白系文字の一つで特殊な処理が行われるから。
foo,bar,baz という CSVは IFS="," read -r f1 f2 f3 で正しく読み込める。
foo,,baz でも正しく、f1="foo"、f2=""、f3="baz" と読み込める。
しかしこれがタブ区切り(タブ文字=<TAB>とする)であった場合、
空白系文字が連続している場合は一つとして扱われるという例外ルールにより、
foo<TAB><TAB>baz という CSV は IFS=<TAB> read -r f1 f2 f3 と読み込むと、
f1="foo"、f2="baz"、f3="" と間違って読み込まれる。
> またシェルスクリプトでなくても、タブは単独の区切り文字としてはベスト。
シェルスクリプトにおいてはタブ区切りはベストではない。
なぜなら空白系文字の一つで特殊な処理が行われるから。
foo,bar,baz という CSVは IFS="," read -r f1 f2 f3 で正しく読み込める。
foo,,baz でも正しく、f1="foo"、f2=""、f3="baz" と読み込める。
しかしこれがタブ区切り(タブ文字=<TAB>とする)であった場合、
空白系文字が連続している場合は一つとして扱われるという例外ルールにより、
foo<TAB><TAB>baz という CSV は IFS=<TAB> read -r f1 f2 f3 と読み込むと、
f1="foo"、f2="baz"、f3="" と間違って読み込まれる。
635デフォルトの名無しさん
2021/05/19(水) 13:23:02.17ID:ZyjXFBY0 内部的というか、個人的に、だな
個人的にならそれこそモダンなパーサ使えよって話だし、declare等中途半端なハックはやめておこう
ごめん
個人的にならそれこそモダンなパーサ使えよって話だし、declare等中途半端なハックはやめておこう
ごめん
636デフォルトの名無しさん
2021/05/19(水) 13:24:53.12ID:isp/WQPk 名前は忘れたけど、シェルスクリプトでCSVを扱うためのライブラリかコマンドを見かけたことがある
awk実装のパーサーを使ってたはず。githubでawk csv で検索して見つけたんだったかな?
まあいくつかあったはず。
awk実装のパーサーを使ってたはず。githubでawk csv で検索して見つけたんだったかな?
まあいくつかあったはず。
637デフォルトの名無しさん
2021/05/19(水) 13:27:02.65ID:isp/WQPk たしかシェルスクリプトで扱いやすいように区切り文字を変換する機能とかエスケープする機能とかとかがあったはず
638デフォルトの名無しさん
2021/05/19(水) 13:34:02.00ID:ZyjXFBY0 空白文字としてシェルにパース(単語分割)される、って性質もシェルスクリプティングにおいて便利な場面(forで回したり)は多々あるので一概に悪いとは思わないよ
スペースあるならtsvは避けるとか、IFSをコマンド前置代入で弄るとか、ハッキリ区別したいなら値をクオートしてワンステップ分割を遅延させたりとか
tsvは厳密性と利便性の真ん中の立ち位置だね
シェルスクリプティングにおいて、総合的に見ていい形式だと思うよ、(いざバグるその時までは…)
スペースあるならtsvは避けるとか、IFSをコマンド前置代入で弄るとか、ハッキリ区別したいなら値をクオートしてワンステップ分割を遅延させたりとか
tsvは厳密性と利便性の真ん中の立ち位置だね
シェルスクリプティングにおいて、総合的に見ていい形式だと思うよ、(いざバグるその時までは…)
639デフォルトの名無しさん
2021/05/19(水) 13:45:54.49ID:nuPY3Cay >>632
まあ今時のシェル環境なら絵文字も実際なしじゃないと個人的には思う。
ただ、滅多にないといってもポータビリティ損うのは嫌だから自分はやらないがw
>>633
edかw
ありがとう、覚えておく。
>>634
いや、タブが不適切な場合がありうることは、端から除外してないよ。
標準ツールの実装や文字としての意味合いなどから考えて、ベストだと言ってるので、
そういう特殊な状況がありうることは指摘されるまでもないよw
>>636
awk実装なら欲しい、それw
csvparseなんてコマンドも昔sourceforgeにあって、一時期入れてた。C実装だったので、
でかいファイルを扱うときに重宝したけど、あんまりできがよくなかったんで、今は…
あとC++が書けるなら、boostライブラリ(11標準に入ってるかも)でエスケープ処理できる
パーサを簡単に書けるやつがあったんで、それで挑戦って手もあるかもw
自分は、そんなことを考えているうちに、>>619のq(-text-as-data)を見付けてしまったので、
以後はこれに頼ってるw
まあ今時のシェル環境なら絵文字も実際なしじゃないと個人的には思う。
ただ、滅多にないといってもポータビリティ損うのは嫌だから自分はやらないがw
>>633
edかw
ありがとう、覚えておく。
>>634
いや、タブが不適切な場合がありうることは、端から除外してないよ。
標準ツールの実装や文字としての意味合いなどから考えて、ベストだと言ってるので、
そういう特殊な状況がありうることは指摘されるまでもないよw
>>636
awk実装なら欲しい、それw
csvparseなんてコマンドも昔sourceforgeにあって、一時期入れてた。C実装だったので、
でかいファイルを扱うときに重宝したけど、あんまりできがよくなかったんで、今は…
あとC++が書けるなら、boostライブラリ(11標準に入ってるかも)でエスケープ処理できる
パーサを簡単に書けるやつがあったんで、それで挑戦って手もあるかもw
自分は、そんなことを考えているうちに、>>619のq(-text-as-data)を見付けてしまったので、
以後はこれに頼ってるw
640デフォルトの名無しさん
2021/05/19(水) 16:24:49.16ID:MofjHbZu641デフォルトの名無しさん
2021/05/19(水) 17:37:46.30ID:NrDqbXHa while IFS=$'¥t' readでTSV読むと空文字が飛ばされるんだけど
どうしたらいいの?
どうしたらいいの?
642デフォルトの名無しさん
2021/05/19(水) 18:07:23.61ID:isp/WQPk 絶対入らないであろう制御文字とか別の文字にsedで置換してから処理すればいいんじゃね?
644デフォルトの名無しさん
2021/05/20(木) 07:49:17.82ID:46+G9eEq > 日本語では、「分かる(understand)」と「分ける(divide)」とは同じ字を充てます。つまり理解することと分類するということは同義です。
???
英語では、「分かる(understand)」と「分ける(divide)」とは異なる単語を充てます。つまり理解することと分類するということは全く別です。
となるのでは?w
???
英語では、「分かる(understand)」と「分ける(divide)」とは異なる単語を充てます。つまり理解することと分類するということは全く別です。
となるのでは?w
645デフォルトの名無しさん
2021/05/20(木) 12:53:36.47ID:ensXejIN divide も「分類する」という意味に取ることはできる。分類が理解ならば。
646デフォルトの名無しさん
2021/05/20(木) 13:17:23.56ID:ALA05zio 綴りが同じでも意味が違う場合がある
意味が同じでも別の綴りで表現することもある
言葉の常識だな
意味が同じでも別の綴りで表現することもある
言葉の常識だな
647デフォルトの名無しさん
2021/05/22(土) 08:35:59.42ID:eaqGXRkT >>618だとうまくいかないので訂正する
read_xlsx.to_csv(os.getenv("HOME") + "/Downloads/time_en_jp.csv", index=None, header=True, sep='~')'
ではなくて
read_xlsx.to_csv(os.getenv("HOME") + "/Downloads/time_en_jp.csv", index=None, header=True, sep="~")'
read_xlsx.to_csv(os.getenv("HOME") + "/Downloads/time_en_jp.csv", index=None, header=True, sep='~')'
ではなくて
read_xlsx.to_csv(os.getenv("HOME") + "/Downloads/time_en_jp.csv", index=None, header=True, sep="~")'
648デフォルトの名無しさん
2021/05/22(土) 08:45:20.64ID:eaqGXRkT #!/bin/sh
# >>614の拡張機能を使ってダウンロードした英語字幕をDeepLで翻訳するスクリプト
# 翻訳すると短いなと思ったら英文の適当なところに改行を入れる
# . $HOME/venv/english/bin/activate
python3 -c 'import glob, os, pandas; \
get_filename = glob.glob(os.getenv("HOME") + "/Downloads/*.xlsx"); \
read_xlsx = pandas.read_excel(get_filename[0], engine="openpyxl"); \
read_xlsx.to_csv(os.getenv("HOME") + "/Downloads/time_en_jp.csv", index=None, header=True, sep="~"); \
read_xlsx.to_html(os.getenv("HOME") + "/Downloads/time_en_jp.html", index=None, header=True)'
mkdir --parents $HOME/Downloads/Excel; mv $HOME/Downloads/*.xlsx "$HOME/Downloads/Excel"
xdg-open "$HOME/Downloads/time_en_jp.html"
cat "$HOME/Downloads/time_en_jp.csv" | cut --delimiter='~' --fields='2' > "$HOME/Downloads/en.txt"
# pandoc "$HOME/Downloads/en.txt" -o "$HOME/Downloads/en.docx"
# 英語字幕の文字数は30分動画で約2万
en_05k=$( cat "$HOME/Downloads/en.txt" | sed -z "s/\n/ /g" | cut --characters="1-5000" )
en_10k=$( cat "$HOME/Downloads/en.txt" | sed -z "s/\n/ /g" | cut -c "4900-9900" )
for subtitle in "$en_05k" "$en_10k" "$en_15k" "$en_20k"; do
if [ -z "$subtitle" ]; then break
else xdg-open $( echo '/pj/ne#rotalsnart/moc.lpeed.www//:sptth' | rev )"$subtitle"; sleep 21; fi; done
# >>614の拡張機能を使ってダウンロードした英語字幕をDeepLで翻訳するスクリプト
# 翻訳すると短いなと思ったら英文の適当なところに改行を入れる
# . $HOME/venv/english/bin/activate
python3 -c 'import glob, os, pandas; \
get_filename = glob.glob(os.getenv("HOME") + "/Downloads/*.xlsx"); \
read_xlsx = pandas.read_excel(get_filename[0], engine="openpyxl"); \
read_xlsx.to_csv(os.getenv("HOME") + "/Downloads/time_en_jp.csv", index=None, header=True, sep="~"); \
read_xlsx.to_html(os.getenv("HOME") + "/Downloads/time_en_jp.html", index=None, header=True)'
mkdir --parents $HOME/Downloads/Excel; mv $HOME/Downloads/*.xlsx "$HOME/Downloads/Excel"
xdg-open "$HOME/Downloads/time_en_jp.html"
cat "$HOME/Downloads/time_en_jp.csv" | cut --delimiter='~' --fields='2' > "$HOME/Downloads/en.txt"
# pandoc "$HOME/Downloads/en.txt" -o "$HOME/Downloads/en.docx"
# 英語字幕の文字数は30分動画で約2万
en_05k=$( cat "$HOME/Downloads/en.txt" | sed -z "s/\n/ /g" | cut --characters="1-5000" )
en_10k=$( cat "$HOME/Downloads/en.txt" | sed -z "s/\n/ /g" | cut -c "4900-9900" )
for subtitle in "$en_05k" "$en_10k" "$en_15k" "$en_20k"; do
if [ -z "$subtitle" ]; then break
else xdg-open $( echo '/pj/ne#rotalsnart/moc.lpeed.www//:sptth' | rev )"$subtitle"; sleep 21; fi; done
649デフォルトの名無しさん
2021/05/22(土) 09:02:39.62ID:QJRx2RSn クソコード邪魔すぎ何だこりゃ?
650デフォルトの名無しさん
2021/05/22(土) 11:03:50.76ID:eaqGXRkT >>648
#!/bin/sh
# クリップボードにコピーしたurlをファイルに追記
CLIPB=$(xclip -o)
mkdir --parents $HOME/Pictures/ss
echo $CLIPB >> $HOME/Pictures/ss/urls.txt
#!/bin/sh
# 追記したページのスクリーンショットを取得後にログを残してurls.txtを初期化、閲覧編集用のアプリを起動
mkdir -p $HOME/Pictures/ss
while read url
# 書き込む余白を多く取りたければ1280以上の横幅を指定
do google-chrome --headless --disable-gpu --hide-scrollbars --window-size=1280,15210 \
--screenshot="$HOME/Pictures/ss/ss$(date +"%H%M%S").png" "$url"
done < "$HOME/Pictures/ss/urls.txt"
date >> "$HOME/Pictures/ss/food.log"
cat "$HOME/Pictures/ss/urls.txt" >> "$HOME/Pictures/ss/food.log"
: > "$HOME/Pictures/ss/urls.txt"
wine "$HOME/irfanview/i_view64.exe" &
xdg-open $( echo '=q?/moc.ogkcudkcud//:sptth' | rev )"!hatebu あとで読む"
#!/bin/sh
# クリップボードにコピーしたurlをファイルに追記
CLIPB=$(xclip -o)
mkdir --parents $HOME/Pictures/ss
echo $CLIPB >> $HOME/Pictures/ss/urls.txt
#!/bin/sh
# 追記したページのスクリーンショットを取得後にログを残してurls.txtを初期化、閲覧編集用のアプリを起動
mkdir -p $HOME/Pictures/ss
while read url
# 書き込む余白を多く取りたければ1280以上の横幅を指定
do google-chrome --headless --disable-gpu --hide-scrollbars --window-size=1280,15210 \
--screenshot="$HOME/Pictures/ss/ss$(date +"%H%M%S").png" "$url"
done < "$HOME/Pictures/ss/urls.txt"
date >> "$HOME/Pictures/ss/food.log"
cat "$HOME/Pictures/ss/urls.txt" >> "$HOME/Pictures/ss/food.log"
: > "$HOME/Pictures/ss/urls.txt"
wine "$HOME/irfanview/i_view64.exe" &
xdg-open $( echo '=q?/moc.ogkcudkcud//:sptth' | rev )"!hatebu あとで読む"
651デフォルトの名無しさん
2021/05/22(土) 11:11:15.99ID:/00w7bM8 よくわからんけどrevは5chの規制避けかな
652デフォルトの名無しさん
2021/05/23(日) 18:35:11.52ID:TMBaqh21 >>650
#!/bin/sh
# 区切り文字が^のcsvファイルから3列目を抽出
while IFS='^' f1 f2 f3
do
echo "$f3"
done < $HOME/Documents/file.csv
echo -n "$IFS"
xdg-open $( echo '/pj.oc.ihcinuhc.www//:sptth' | rev )"article/215479"
#!/bin/sh
# 区切り文字が^のcsvファイルから3列目を抽出
while IFS='^' f1 f2 f3
do
echo "$f3"
done < $HOME/Documents/file.csv
echo -n "$IFS"
xdg-open $( echo '/pj.oc.ihcinuhc.www//:sptth' | rev )"article/215479"
653デフォルトの名無しさん
2021/06/02(水) 23:41:48.90ID:CFdyIdLe スクリプトのシバンで#!/bin/bashを使うのに抵抗があっていつも#!/bin/shと書くんだけど
#!/bin/shは実際何が呼ばれてるか確認する方法ある?
#!/bin/shは実際何が呼ばれてるか確認する方法ある?
654デフォルトの名無しさん
2021/06/03(木) 02:30:25.50ID:Xmy19u29 file /bin/sh
655デフォルトの名無しさん
2021/06/03(木) 02:36:09.69ID:Ers5yK+g Ubuntu 18.04 では、
file /bin/sh
/bin/sh: symbolic link to dash
readlink -f /bin/sh
/bin/dash
ls@ -l /bin/sh
lrwxrwxrwx 1 root root 4 5月 21 2019 /bin/sh -> dash
ただし、ls の特定のオプションは書き込めないので、@を入れました
ll /bin/sh
lrwxrwxrwx 1 root root 4 5月 21 2019 /bin/sh -> dash*
ただし、ll は、~/.bashrc 内で定義されているエイリアス。
alias ll='ls -alF'
file /bin/sh
/bin/sh: symbolic link to dash
readlink -f /bin/sh
/bin/dash
ls@ -l /bin/sh
lrwxrwxrwx 1 root root 4 5月 21 2019 /bin/sh -> dash
ただし、ls の特定のオプションは書き込めないので、@を入れました
ll /bin/sh
lrwxrwxrwx 1 root root 4 5月 21 2019 /bin/sh -> dash*
ただし、ll は、~/.bashrc 内で定義されているエイリアス。
alias ll='ls -alF'
656デフォルトの名無しさん
2021/06/03(木) 03:13:59.17ID:Xmy19u29 dashいいよね
time /bin/sh looooop.sh
という手も…
制御構文と算術並べて回すとbashの6倍〜くらい速い
もしbashのshモードなら、あえてshとして呼ぶ意味は多分ない
shにリネームしても--posixで呼んでも速くなったりはしないので
単に機能制限するだけ
time /bin/sh looooop.sh
という手も…
制御構文と算術並べて回すとbashの6倍〜くらい速い
もしbashのshモードなら、あえてshとして呼ぶ意味は多分ない
shにリネームしても--posixで呼んでも速くなったりはしないので
単に機能制限するだけ
657デフォルトの名無しさん
2021/06/03(木) 04:24:00.37ID:R+Tga64P bashの--posixなら多分機能制限しない
posix準拠の動きに変えるだけ
posix準拠の動きに変えるだけ
658デフォルトの名無しさん
2021/06/03(木) 14:26:02.44ID:jx+ISKqI >>656
なくはない。
何らかのbシェルベースのシェルが起動するコトを期待する、と言う意味がある。
そこがつまり#!/bin/dashと書くな、という理由だよ。
ポータビリティというのは結局スクリプトを書く側が担保してやるしかないものさ。
なくはない。
何らかのbシェルベースのシェルが起動するコトを期待する、と言う意味がある。
そこがつまり#!/bin/dashと書くな、という理由だよ。
ポータビリティというのは結局スクリプトを書く側が担保してやるしかないものさ。
659653
2021/06/03(木) 19:13:59.15ID:smLJNlVA こんなん出ました
dashだそうです
root@rock64:~# file /bin/sh
-bash: file: command not found
root@rock64:~# readlink -f /bin/sh
/bin/dash
dashだそうです
root@rock64:~# file /bin/sh
-bash: file: command not found
root@rock64:~# readlink -f /bin/sh
/bin/dash
660デフォルトの名無しさん
2021/06/03(木) 23:17:43.27ID:jx+ISKqI661デフォルトの名無しさん
2021/06/04(金) 00:17:07.85ID:3WbYfw6G $ apt-file search -x '(/usr)?/bin/file$'
file: /usr/bin/file
file: /usr/bin/file
662デフォルトの名無しさん
2021/06/04(金) 18:08:41.76ID:gVy5NQ7F >>660
最近はクロス環境とか多いからfileは結構出番ないすか? これどれのバイナリー? みたいな
最近はクロス環境とか多いからfileは結構出番ないすか? これどれのバイナリー? みたいな
663デフォルトの名無しさん
2021/06/04(金) 19:10:54.58ID:3cSNOYzv クロス開発で異なるプラットフォームのバイナリが
バラバラにばらまかれて調べないといけなくなる状況がわからん
ちゃんとディレクトリとかファイル名とかでわけて
混ざらないように作れよ
適当にやってるからわからなくなるんだよ
バラバラにばらまかれて調べないといけなくなる状況がわからん
ちゃんとディレクトリとかファイル名とかでわけて
混ざらないように作れよ
適当にやってるからわからなくなるんだよ
664653
2021/06/04(金) 22:37:23.88ID:jwl5S2DP665デフォルトの名無しさん
2021/06/04(金) 22:55:40.20ID:n50ApA7d666デフォルトの名無しさん
2021/06/05(土) 00:08:43.42ID:wpsN2NXu これを機にPOSIX準拠を目指すといいでござる
ただしPOSIX原理主義だけは見てはいけないでござる
あれはエセPOSX宗教でござる
ただしPOSIX原理主義だけは見てはいけないでござる
あれはエセPOSX宗教でござる
667デフォルトの名無しさん
2021/06/06(日) 19:16:29.89ID:JMlL8BLG プログラムの勉強のためにshellのコマンド(ex cd・cp・find ...etc)が
どう書かれているか中身を見たいのですが、バイナリのため文字化けしてて見れません。
これを人が読めるように戻すにはどうしたらよいでしょうか?
またshellのコマンドはプログラム言語は何で書かれているのでしょうか?
どう書かれているか中身を見たいのですが、バイナリのため文字化けしてて見れません。
これを人が読めるように戻すにはどうしたらよいでしょうか?
またshellのコマンドはプログラム言語は何で書かれているのでしょうか?
668デフォルトの名無しさん
2021/06/06(日) 19:25:46.16ID:a60f9MS4 $ objdump -d -j .text /usr/bin/cp
669デフォルトの名無しさん
2021/06/06(日) 19:47:31.05ID:czQb8XNZ670デフォルトの名無しさん
2021/06/06(日) 19:48:12.73ID:P8Y1M++D >>669
それはLinuxだろ
それはLinuxだろ
671デフォルトの名無しさん
2021/06/06(日) 19:50:10.61ID:czQb8XNZ >>670
BSDもだけど。macOSもな
BSDもだけど。macOSもな
672デフォルトの名無しさん
2021/06/06(日) 19:53:49.73ID:P8Y1M++D なんかずれてるな
673デフォルトの名無しさん
2021/06/06(日) 19:55:06.72ID:P8Y1M++D オープンソースとそうでないものがあって、そもそもはオープンソースでない方が元。
674デフォルトの名無しさん
2021/06/06(日) 19:55:15.47ID:czQb8XNZ お前が何を噛みついてるのかわからん
お前がズレてるんだろうがぁ
お前がズレてるんだろうがぁ
675デフォルトの名無しさん
2021/06/06(日) 19:59:04.19ID:czQb8XNZ676デフォルトの名無しさん
2021/06/06(日) 20:01:57.37ID:wmjhjcQW >>667
それらの基本的なコマンドはLinuxが作ってるんじゃなくて
GNUが作ってる。Linuxそれを採用してるだけ
それらの基本的なコマンドはだいたいcoreutilsの中に詰め込まれてる
https://github.com/coreutils/coreutils/tree/master/src
ただし一部は別だったりする。例えばfindはfindutils
cdはシェルで実装されてるからbashとかのソースコードを見ないとわからない
Linux以外を見たければそのOSを作ってるサイトとかに書いてある
それらの基本的なコマンドはLinuxが作ってるんじゃなくて
GNUが作ってる。Linuxそれを採用してるだけ
それらの基本的なコマンドはだいたいcoreutilsの中に詰め込まれてる
https://github.com/coreutils/coreutils/tree/master/src
ただし一部は別だったりする。例えばfindはfindutils
cdはシェルで実装されてるからbashとかのソースコードを見ないとわからない
Linux以外を見たければそのOSを作ってるサイトとかに書いてある
677デフォルトの名無しさん
2021/06/06(日) 20:03:14.27ID:wmjhjcQW678デフォルトの名無しさん
2021/06/06(日) 20:04:40.72ID:wmjhjcQW しかしオープンソースじゃないcpってあるんだろうか?w
unixのソースコードも公開されてたよね?
unixのソースコードも公開されてたよね?
679デフォルトの名無しさん
2021/06/06(日) 20:05:20.51ID:czQb8XNZ680デフォルトの名無しさん
2021/06/06(日) 20:11:51.24ID:a60f9MS4 System V とか Microsoft Xenix とか BSDI のコマンドとかだったりして
681デフォルトの名無しさん
2021/06/06(日) 20:24:40.79ID:JMlL8BLG >669 676
ありがとうございます。GitHubでソースコード拝見しましたが
C言語難しいですね。
ありがとうございます。GitHubでソースコード拝見しましたが
C言語難しいですね。
682デフォルトの名無しさん
2021/06/06(日) 22:11:42.25ID:aDY6ROlo 標準出力の速度を制限したり、通信速度を表示するコマンドってないでしょうか?
683デフォルトの名無しさん
2021/06/06(日) 23:47:07.17ID:2q78RNEI684デフォルトの名無しさん
2021/06/06(日) 23:58:07.43ID:///+rfU8685デフォルトの名無しさん
2021/06/07(月) 02:17:17.72ID:pO0RV8yO Pipe Viewer とか
http://www.ivarch.com/programs/pv.shtml
http://www.ivarch.com/programs/pv.shtml
686デフォルトの名無しさん
2021/06/07(月) 11:24:53.90ID:4bgMFjRA >>685
ありがとうございました!
ありがとうございました!
687デフォルトの名無しさん
2021/06/08(火) 14:08:09.66ID:OYNrrHpJ 誰かいます?質問いいですか?
688デフォルトの名無しさん
2021/06/08(火) 16:02:21.82ID:CHrXnr0w ff fb 20
689デフォルトの名無しさん
2021/06/08(火) 19:32:55.59ID:VAaMDIwe .bashrcのaliasでnohupしたいんだがどう書けばいいの?
これだと上手くいかなかった
alias unko='sudo nohup sh -c '¥''time /unko/unchi.sh '¥'' &'
これだと上手くいかなかった
alias unko='sudo nohup sh -c '¥''time /unko/unchi.sh '¥'' &'
690デフォルトの名無しさん
2021/06/09(水) 10:49:19.85ID:Zc888NJs >>689
それって sudo してるからパスワード入力が必要になるが、最後に & 付いてるからシェルに戻って来ちゃうからうまく行かんのでは?
普通にコマンドラインから入力してもうまく行かんと思うんだが。1度sudoで何かを動かした後でパスワード入力しなくて良い状態になっている時ならできるだろうけど。
それって sudo してるからパスワード入力が必要になるが、最後に & 付いてるからシェルに戻って来ちゃうからうまく行かんのでは?
普通にコマンドラインから入力してもうまく行かんと思うんだが。1度sudoで何かを動かした後でパスワード入力しなくて良い状態になっている時ならできるだろうけど。
691デフォルトの名無しさん
2021/06/09(水) 14:08:40.45ID:HNZZx/kM692デフォルトの名無しさん
2021/06/13(日) 19:52:58.76ID:5F9QidAB sudo でワイルドカード使いたいときって
sudo sh -c "hoge *"
をイディオムだと思って使うのが良いですかね?
他のやり方ってありますか?
sudo sh -c "hoge *"
をイディオムだと思って使うのが良いですかね?
他のやり方ってありますか?
693デフォルトの名無しさん
2021/06/13(日) 20:33:30.15ID:ZhJARNOF694デフォルトの名無しさん
2021/06/14(月) 11:12:16.03ID:KZOl1vP3 イディオムってなんだよ? 何も考えたくないって言ってんのか?
正しいコードを書くだけの話だろ
正しいコードを書くだけの話だろ
695デフォルトの名無しさん
2021/06/14(月) 12:55:12.73ID:0x3Kpqg0 その「正しいコード」とやらが、初心者にはちょっと難しいことはわかる。
凝ったことをやるときに、シェル組み込みのコマンドや機能は混乱のもとやからしゃあない。
凝ったことをやるときに、シェル組み込みのコマンドや機能は混乱のもとやからしゃあない。
696デフォルトの名無しさん
2021/06/14(月) 15:51:02.64ID:KZOl1vP3 俺が突っ込みたいのは「イディオム」って言葉だよ
仕組みを理解したくないってのがバレバレなんだよ
上司「なんでこんなコードにしたの?」
馬鹿「知りません。イディオムです!」
っていいたいのバレバレやろ?
仕組みを理解したくないってのがバレバレなんだよ
上司「なんでこんなコードにしたの?」
馬鹿「知りません。イディオムです!」
っていいたいのバレバレやろ?
697デフォルトの名無しさん
2021/06/14(月) 16:13:33.51ID:lTAIWsCW すみません
sh -c は何も sudo でワイルドカードを使うためだけに存在する構文ではないので、イディオムと申しました
sh -c は何も sudo でワイルドカードを使うためだけに存在する構文ではないので、イディオムと申しました
698デフォルトの名無しさん
2021/06/14(月) 16:18:29.41ID:lTAIWsCW sudoが使えるユーザが利用者で、実行時にパスワードを求める想定です
このときにワイルドカードを使うための、その「正しいコード」とはどのようなものですか、というのが質問です
このときにワイルドカードを使うための、その「正しいコード」とはどのようなものですか、というのが質問です
699デフォルトの名無しさん
2021/06/14(月) 19:26:11.00ID:hx6guc/Q sudoでもワイルドカード使えるし
echo /etc/*.conf
ってしてみろ
shellの機能を使ってるのがわかってない
shellのオーナーはrootじゃなくユーザー
echo /etc/*.conf
ってしてみろ
shellの機能を使ってるのがわかってない
shellのオーナーはrootじゃなくユーザー
700デフォルトの名無しさん
2021/06/14(月) 21:27:46.24ID:KZOl1vP3 正しいコードを聞くんじゃなくて、
シェルスクリプトを勉強しろって言ってんの
コード聞いて終わりにするだろ
上司「なんでこんなコードにしたの?」
馬鹿「知りません。5ちゃんねるでこれが正しいって聞きました!」
シェルスクリプトを勉強しろって言ってんの
コード聞いて終わりにするだろ
上司「なんでこんなコードにしたの?」
馬鹿「知りません。5ちゃんねるでこれが正しいって聞きました!」
701デフォルトの名無しさん
2021/06/14(月) 21:29:27.91ID:0x3Kpqg0702デフォルトの名無しさん
2021/06/14(月) 21:32:42.19ID:0x3Kpqg0703デフォルトの名無しさん
2021/06/14(月) 21:42:49.75ID:TBcjiJdx704デフォルトの名無しさん
2021/06/14(月) 21:47:07.04ID:KZOl1vP3 どこがイディオムなんだ?ただのワイルドカードだろ
*がワイルドカードで終わる話なんだが?
うん。はいおわた。そこにイディオムはありません。
https://ja.wikipedia.org/wiki/%E3%82%A4%E3%83%87%E3%82%A3%E3%82%AA%E3%83%A0
イディオム(英語: idiom、フランス語: idiome、ドイツ語: Idiom)とは、
単語における一定の配列での連結の総称である。言語の類型によっては、
単語に準ずる形態素や表意性を持つ文字がこの役割を担うこともある。
この連結によって、慣習的に用例と意味が固定しており、字面から意味を推測できないことも多い。
*がワイルドカードで終わる話なんだが?
うん。はいおわた。そこにイディオムはありません。
https://ja.wikipedia.org/wiki/%E3%82%A4%E3%83%87%E3%82%A3%E3%82%AA%E3%83%A0
イディオム(英語: idiom、フランス語: idiome、ドイツ語: Idiom)とは、
単語における一定の配列での連結の総称である。言語の類型によっては、
単語に準ずる形態素や表意性を持つ文字がこの役割を担うこともある。
この連結によって、慣習的に用例と意味が固定しており、字面から意味を推測できないことも多い。
705デフォルトの名無しさん
2021/06/14(月) 21:51:20.88ID:XErzM4Zs ↑ 本題とは関係ない変なこだわりっぷりはキチガイ
706デフォルトの名無しさん
2021/06/14(月) 22:01:38.26ID:KZOl1vP3 本題の答え *がワイルドカード
あとは書いたように動く
イディオムなんてない
あとは書いたように動く
イディオムなんてない
707デフォルトの名無しさん
2021/06/14(月) 22:07:17.88ID:RVbOy7mU >>701
sudoはsudo cmdのcmdの実行をroot権限にするだけ
echo *.confもechoにしてみたらいろんなの渡されてびっくりだよ
shellはあらかじめ余計な処理をする
shellを実行してるのはuser
sudoはsudo cmdのcmdの実行をroot権限にするだけ
echo *.confもechoにしてみたらいろんなの渡されてびっくりだよ
shellはあらかじめ余計な処理をする
shellを実行してるのはuser
708デフォルトの名無しさん
2021/06/14(月) 22:19:23.20ID:XErzM4Zs >あらかじめ余計な処理
余計といえば余計だが、その余計なおかげでechoなどは何もしなくてもいいんだけど
POSIXに展開はルールは明文化されてるから一度読めばいいと思う
余計といえば余計だが、その余計なおかげでechoなどは何もしなくてもいいんだけど
POSIXに展開はルールは明文化されてるから一度読めばいいと思う
709デフォルトの名無しさん
2021/06/14(月) 22:38:14.31ID:0x3Kpqg0710デフォルトの名無しさん
2021/06/14(月) 22:38:16.95ID:lTAIWsCW711デフォルトの名無しさん
2021/06/14(月) 22:42:35.98ID:0x3Kpqg0 >>707
sudoであえてshを実行する意味がわかってないやろ?
sudoであえてshを実行する意味がわかってないやろ?
712デフォルトの名無しさん
2021/06/14(月) 22:43:09.07ID:XErzM4Zs >>710
人格が変わりすぎだろうw
It’s a common idiom to use env to find bash even if it’s been installed in another directory
と同じような感覚で使ったんだろう?そもそもは。とは思ってたけど
しかし人格が変わりすぎwww
人格が変わりすぎだろうw
It’s a common idiom to use env to find bash even if it’s been installed in another directory
と同じような感覚で使ったんだろう?そもそもは。とは思ってたけど
しかし人格が変わりすぎwww
713デフォルトの名無しさん
2021/06/14(月) 22:43:39.18ID:TBcjiJdx714デフォルトの名無しさん
2021/06/14(月) 22:45:44.34ID:lTAIWsCW715デフォルトの名無しさん
2021/06/14(月) 22:51:30.90ID:XErzM4Zs716デフォルトの名無しさん
2021/06/14(月) 22:53:20.37ID:XErzM4Zs717デフォルトの名無しさん
2021/06/14(月) 22:55:27.91ID:TBcjiJdx >>715
> そんな想定ができるヤツは、あんな質問をしないし、「イディオム」とは言うまい。
いやこんなにも論理的に破綻していてかつイディオムという語の意味を理解してない奴が同じタイミングで二人もいるって恐怖でしかないんだが
> そんな想定ができるヤツは、あんな質問をしないし、「イディオム」とは言うまい。
いやこんなにも論理的に破綻していてかつイディオムという語の意味を理解してない奴が同じタイミングで二人もいるって恐怖でしかないんだが
718デフォルトの名無しさん
2021/06/14(月) 22:58:00.42ID:XErzM4Zs 別に居ても不思議じゃないけどw
719デフォルトの名無しさん
2021/06/15(火) 03:36:25.29ID:fYgQamCV720デフォルトの名無しさん
2021/06/15(火) 04:54:46.12ID:UNOhr6// >>719
> ただ主張するのではなく、どのように破綻しているのかを述べよ。
では、
>>709
> そんな想定ができるヤツは、あんな質問をしないし、「イディオム」とは言うまい。
がどう破綻しているか述べる
質問者は「一般ユーザが展開したワイルドカード」と「root が展開したワイルドカード」が違うのを知っているからこそ「sudo でワイルドカードを使いたい」と思い至ったのであって、この時点でワイルドカードの展開はシェルが担うという前提を持っている
その上で「ワイルドカードの展開をroot のシェルに委ねられないか」というのが元の質問なわけだね
従って、
> そんな想定ができるヤツは、あんな質問をしない
というのは偽だ
なんせ事実として質問者は「そんな想定」を持った上で「あんな質問」をしているのだから
また、いくつかの説明や例文がこれまでに出ているように、質問者のイディオムという語の用法は全く間違っていないし広く使われているものと合致するので、
> 「イディオム」とは言うまい
というのも頓珍漢も甚だしい
(もちろん質問者のイディオムという語の使い方が間違っていることをあなたたちが客観的に示すということはあっても良い。できるものならご自由にどうぞ)
そもそも「こういう知識レベルの人間はこういう語を使わない」なる命題が常に真なわけないでしょう
コンピュータの知識と日用語の語彙に何らかの相関があったとして、それは「そういう傾向がある」というだけなのでね
以上のことから、>>709は事実から説明される事柄と尽く反対のことを言っていて、全体的に偽なので、論理的に破綻しているといえる
> ただ主張するのではなく、どのように破綻しているのかを述べよ。
では、
>>709
> そんな想定ができるヤツは、あんな質問をしないし、「イディオム」とは言うまい。
がどう破綻しているか述べる
質問者は「一般ユーザが展開したワイルドカード」と「root が展開したワイルドカード」が違うのを知っているからこそ「sudo でワイルドカードを使いたい」と思い至ったのであって、この時点でワイルドカードの展開はシェルが担うという前提を持っている
その上で「ワイルドカードの展開をroot のシェルに委ねられないか」というのが元の質問なわけだね
従って、
> そんな想定ができるヤツは、あんな質問をしない
というのは偽だ
なんせ事実として質問者は「そんな想定」を持った上で「あんな質問」をしているのだから
また、いくつかの説明や例文がこれまでに出ているように、質問者のイディオムという語の用法は全く間違っていないし広く使われているものと合致するので、
> 「イディオム」とは言うまい
というのも頓珍漢も甚だしい
(もちろん質問者のイディオムという語の使い方が間違っていることをあなたたちが客観的に示すということはあっても良い。できるものならご自由にどうぞ)
そもそも「こういう知識レベルの人間はこういう語を使わない」なる命題が常に真なわけないでしょう
コンピュータの知識と日用語の語彙に何らかの相関があったとして、それは「そういう傾向がある」というだけなのでね
以上のことから、>>709は事実から説明される事柄と尽く反対のことを言っていて、全体的に偽なので、論理的に破綻しているといえる
721デフォルトの名無しさん
2021/06/15(火) 11:08:32.71ID:ic6VniVo722デフォルトの名無しさん
2021/06/15(火) 11:50:21.12ID:vhbon9Jn >>699
そのための全ての展開に優先するaliasですよ
user/pwdを保存しておいて、su/sudo&好きにcdしてそこで*を展開
hogeはシェル関数にしておいて、末尾に元のユーザーへsu/pwd復元コード
そのための全ての展開に優先するaliasですよ
user/pwdを保存しておいて、su/sudo&好きにcdしてそこで*を展開
hogeはシェル関数にしておいて、末尾に元のユーザーへsu/pwd復元コード
723デフォルトの名無しさん
2021/06/15(火) 11:56:27.22ID:vhbon9Jn エイリアスはパースの第一段階なので、su root; cd some/dir; hoge *に渡る*はsu/cd後のものになります、言葉不足ごめん
ファイル名展開はパラメータ展開よりも後なので、他の展開で仕込んでもいいかも
ファイル名展開はパラメータ展開よりも後なので、他の展開で仕込んでもいいかも
724デフォルトの名無しさん
2021/06/15(火) 11:57:34.70ID:vhbon9Jn >>723はalias fuga=に突っ込むコマンドです
725デフォルトの名無しさん
2021/06/15(火) 12:03:49.18ID:fYgQamCV726デフォルトの名無しさん
2021/06/15(火) 12:32:19.46ID:Uk8DlJ/9 またID切り替えて恥晒し続けるのか
昨日は他スレでも同じようなやつがいたな
昨日は他スレでも同じようなやつがいたな
727デフォルトの名無しさん
2021/06/15(火) 14:22:06.77ID:fYgQamCV >>726
自分の敵は全部同一人物扱いか。w
自分の敵は全部同一人物扱いか。w
728デフォルトの名無しさん
2021/06/15(火) 14:48:09.92ID:D4jRQBdQ >>721
権限も引き継ぐから何もやってないのと同じ
権限も引き継ぐから何もやってないのと同じ
729デフォルトの名無しさん
2021/06/15(火) 15:23:52.83ID:uDm4jDy6 >>726
XXな人が使うイディオム
XXな人が使うイディオム
730デフォルトの名無しさん
2021/06/16(水) 08:06:02.87ID:drc75L4c 微妙に関係しそうだから恥をしのんで
()のサブシェルで手軽にサブシェルのID得る方法ってないかな?
パラメタ展開をエイリアスで遅延テクは、エイリアスが行頭に来る必要があるので、おもむろに書ける()の利点が無くなるかなと
()のサブシェルで手軽にサブシェルのID得る方法ってないかな?
パラメタ展開をエイリアスで遅延テクは、エイリアスが行頭に来る必要があるので、おもむろに書ける()の利点が無くなるかなと
731デフォルトの名無しさん
2021/06/16(水) 09:57:22.10ID:up1ZHWjO echo $$
ではダメなの?
ではダメなの?
732デフォルトの名無しさん
2021/06/16(水) 10:13:45.13ID:drc75L4c >>731
()の中の$$は親シェルのpidを返すのよ
それこそsh -cに(適当にエスケープした)文字列としてecho $$を渡せって話だけど、折角分かりやすい()構文があるのだから、その範囲内で何かワークアラウンドできないなと
()の中の$$は親シェルのpidを返すのよ
それこそsh -cに(適当にエスケープした)文字列としてecho $$を渡せって話だけど、折角分かりやすい()構文があるのだから、その範囲内で何かワークアラウンドできないなと
733デフォルトの名無しさん
2021/06/17(木) 17:40:01.55ID:uOhhE14V このようなファイルがあります。
先頭の単語+デリミタ(今回はカンマ)以降の文字を全て削除したい場合は
sedでどのように書けばいいでしょうか?
one,no need word, no need word
two,no need word, no need word
theree,no need word, no need word
four,no need word, no need word
先頭の単語+デリミタ(今回はカンマ)以降の文字を全て削除したい場合は
sedでどのように書けばいいでしょうか?
one,no need word, no need word
two,no need word, no need word
theree,no need word, no need word
four,no need word, no need word
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 一律現金給付も消費減税もなし 高市内閣の経済対策に割れる世論 [蚤の市★]
- 空自機レーダー照射、音声データ公開 中国 ★3 [蚤の市★]
- 日銀「歴史的」利上げ迫る 35年ぶりの年間上げ幅、0.5%の壁を突破 [蚤の市★] [蚤の市★]
- 津波警報の発表中にグーグル検索、AIが「すべて解除」と誤情報 [蚤の市★]
- 【YouTuber】バイク事故で入院のゆたぼん、振込で「お見舞金」募る [muffin★]
- 低所得層のマクドナルド離れが深刻に 広がる「ファストフード格差」の真相 米国 [少考さん★]
- 中国大使さん、麻生太郎を『この政治屋』と名指しし正論長文を投稿。 [271912485]
- 【実況】博衣こよりのえちえち朝活🧪 2
- 【実況】博衣こよりのえちえち朝活🧪
- 中国「もはや高市の謝罪や撤回で済まされるフェーズは過ぎ去った。辞任以外の選択肢ない」 [271912485]
- 【高市悲報】日本人のTikTokアカウントが続々収益化剥奪中!!乞食どもざまああああああああwwwwwww [394917828]
- 残クレマイホーム爆誕 [715715613]
