シェルスクリプトに関する総合スレッドです。
全般
・荒しは無視しましょう。
・丁寧な姿勢を心掛けましょう。
・ネチケット(死語)を意識しましょう。
・「○○(他の言語)でいいやん」は禁止。他のスレに行ってください。
シェルスクリプト総合 その32
https://mevius.5ch.net/test/read.cgi/tech/1571929725/
シェルスクリプト総合 その33
■ このスレッドは過去ログ倉庫に格納されています
2020/03/23(月) 01:12:30.31ID:TYte82vJ
2020/03/23(月) 01:13:11.44ID:TYte82vJ
・特記なき場合、POSIX準拠シェルが既定です(古きBourneシェルはほぼ絶滅しました)
POSIX準拠シェルは(d)ash, bash, zsh, (m)ksh, yash, posh, (p)boshです
参考 https://unix.stackexchange.com/questions/145522/
特定のシェルの専用機能に依存する場合は明示しましょう(特にPOSIX準拠シェルではないfish, (t)csh等)
・デフォルトシェルのシバンはBourneシェル時代からの伝統で#!/bin/shを使用します。ただしその実体はOSによって様々です
Debian系 … dash CentOS系 … bash Alpine … ash(busybox) Android … mksh
FreeBSD … ash Solaris,OpenBSD … ksh
macOS … bash(Single UNIX Specification準拠のために一部動作が異なる)
・ログインシェルは/bin/shでない場合があります。例 macOS … zsh
・シェルスクリプトは可搬性を持たせるために可能な限りPOSIXに準拠しましょう
仕様 http://pubs.opengroup.org/onlinepubs/9699919799/
参考 https://en.wikipedia.org/wiki/POSIX
・bash依存はなるべく避けましょう。自覚なきbashism。シバンが#!/bin/shなのにbashに依存する構文を使っていませんか?
#!/bin/shを使うならシェル依存は厳禁です。bash依存するなら#!/bin/bashです
・BourneシェルはPOSIX標準化前に主にUNIXで使われていたシェルで多くの亜種が存在します
Bourneシェル≒Version 7 UNIXのshに一番近いのはOpenSolaris由来のHeirloom Bourne Shell、次点でSchily Bourne Shellのoboshです
Heirloom Bourne Shell: sh http://heirloom.sourceforge.net/sh.html
Schily Bourne Shell: obosh http://schilytools.sourceforge.net/bosh.html
歴史的資料 https://www.in-ulm.de/~mascheck/
・csh/tcshでのシェルスクリプトは*まったく推奨しません*
参考 http://www.speech-lab.org/~hiroki/csh-whynot.euc
・Linux/UNIXにはシェルスクリプトに便利な小さなコマンドがいろいろあります。Manページや各種リンクを見ましょう
aproposやman -kでそれらしい単語による簡単な検索もできます
・ワイルドカード・パターンは正規表現ではありません。正規表現の話題はスレ違い(正規表現スレへ)
・シェル芸はシェルスクリプトとは異なります
・シェルスクリプトのことをシェルってゆうな
POSIX準拠シェルは(d)ash, bash, zsh, (m)ksh, yash, posh, (p)boshです
参考 https://unix.stackexchange.com/questions/145522/
特定のシェルの専用機能に依存する場合は明示しましょう(特にPOSIX準拠シェルではないfish, (t)csh等)
・デフォルトシェルのシバンはBourneシェル時代からの伝統で#!/bin/shを使用します。ただしその実体はOSによって様々です
Debian系 … dash CentOS系 … bash Alpine … ash(busybox) Android … mksh
FreeBSD … ash Solaris,OpenBSD … ksh
macOS … bash(Single UNIX Specification準拠のために一部動作が異なる)
・ログインシェルは/bin/shでない場合があります。例 macOS … zsh
・シェルスクリプトは可搬性を持たせるために可能な限りPOSIXに準拠しましょう
仕様 http://pubs.opengroup.org/onlinepubs/9699919799/
参考 https://en.wikipedia.org/wiki/POSIX
・bash依存はなるべく避けましょう。自覚なきbashism。シバンが#!/bin/shなのにbashに依存する構文を使っていませんか?
#!/bin/shを使うならシェル依存は厳禁です。bash依存するなら#!/bin/bashです
・BourneシェルはPOSIX標準化前に主にUNIXで使われていたシェルで多くの亜種が存在します
Bourneシェル≒Version 7 UNIXのshに一番近いのはOpenSolaris由来のHeirloom Bourne Shell、次点でSchily Bourne Shellのoboshです
Heirloom Bourne Shell: sh http://heirloom.sourceforge.net/sh.html
Schily Bourne Shell: obosh http://schilytools.sourceforge.net/bosh.html
歴史的資料 https://www.in-ulm.de/~mascheck/
・csh/tcshでのシェルスクリプトは*まったく推奨しません*
参考 http://www.speech-lab.org/~hiroki/csh-whynot.euc
・Linux/UNIXにはシェルスクリプトに便利な小さなコマンドがいろいろあります。Manページや各種リンクを見ましょう
aproposやman -kでそれらしい単語による簡単な検索もできます
・ワイルドカード・パターンは正規表現ではありません。正規表現の話題はスレ違い(正規表現スレへ)
・シェル芸はシェルスクリプトとは異なります
・シェルスクリプトのことをシェルってゆうな
2020/03/23(月) 01:14:49.56ID:TYte82vJ
関連スレ
【Bash】Windows Subsystem for Linux【WSL】7
https://mao.5ch.net/test/read.cgi/linux/1579395785/l50
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/
【POSIX】UNIXプログラミング【BSD】 [転載禁止](c)2ch.net
https://mevius.5ch.net/test/read.cgi/unix/1443103705/
【Bash】Windows Subsystem for Linux【WSL】7
https://mao.5ch.net/test/read.cgi/linux/1579395785/l50
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/
【POSIX】UNIXプログラミング【BSD】 [転載禁止](c)2ch.net
https://mevius.5ch.net/test/read.cgi/unix/1443103705/
2020/03/23(月) 16:11:26.05ID:urYmb4Ir
タコシェルが一番好きです。なぜならおいしいから。
2020/03/23(月) 21:51:18.74ID:gNyotYW5
>>1 乙
ところで早速の質問なんだけど,GNU Bashの履歴展開に関して,
<<. cat |
&#
.
cat
↑このコマンドを実行した時に,履歴展開「!$」の値が「&」になるのと,
<<. cat |
#&
.
cat
↑このコマンドを実行した時に,履歴展開「!$」の値が「|」になるのって,
バグ?仕様?
ちなみに履歴展開「!!」の値は正常(つまり直前のコマンドライン全体に復元される)だし,
ヒアドキュメントの内容が&xやx&だったりした場合は
期待通りの挙動(すなわち最後の引数,この場合は「cat」)になる。
ところで早速の質問なんだけど,GNU Bashの履歴展開に関して,
<<. cat |
&#
.
cat
↑このコマンドを実行した時に,履歴展開「!$」の値が「&」になるのと,
<<. cat |
#&
.
cat
↑このコマンドを実行した時に,履歴展開「!$」の値が「|」になるのって,
バグ?仕様?
ちなみに履歴展開「!!」の値は正常(つまり直前のコマンドライン全体に復元される)だし,
ヒアドキュメントの内容が&xやx&だったりした場合は
期待通りの挙動(すなわち最後の引数,この場合は「cat」)になる。
2020/03/24(火) 02:17:57.55ID:cu1HFh78
catコマンドがあるのにdogコマンドってないんですか?
気になります。
気になります。
2020/03/24(火) 03:33:10.76ID:Do7E3fIs
tac コマンドがあるよ
2020/03/24(火) 03:35:04.91ID:UBy3gEYu
>>6
wachdog
wachdog
2020/03/24(火) 03:35:15.65ID:UBy3gEYu
t忘れた
2020/03/24(火) 07:10:36.15ID:fj9Tix3R
私は可愛い猫と女の子を見ていたいです。
I want to watch girl with cute cat.
I want to watch girl with cute cat.
2020/03/24(火) 11:34:18.79ID:0MDW2qu9
>>10
短い文なのに英語力の低さがダダ漏れ
短い文なのに英語力の低さがダダ漏れ
2020/03/26(木) 01:44:53.53ID:1qTCm9gt
touchやcatみたいに本来とは違う用途で使われるコマンドって他にもあるんだろうか
mvでリネームも最初は不可解だったが
mvでリネームも最初は不可解だったが
2020/03/26(木) 08:26:08.90ID:cRYr3Jpu
>>12
どんな使い方だ?
どんな使い方だ?
2020/03/26(木) 09:12:09.34ID:dMO0q1U3
触るだけだったのに作ってしまう
猫だったのに
猫だったのに
2020/03/26(木) 09:30:11.06ID:n14BBjo0
結合結果を出力するものだが単独ファイルの中身を表示するのに使うとか
2020/03/26(木) 10:06:49.81ID:q5TlNmdE
touchは?
2020/03/26(木) 10:13:00.02ID:dMO0q1U3
タッチは触るツールやろ
18デフォルトの名無しさん
2020/03/26(木) 10:36:23.24ID:SHCpGffT >>5
これ分かる方いらっしゃいますか。
これ分かる方いらっしゃいますか。
2020/03/26(木) 10:50:22.02ID:dMO0q1U3
履歴展開はインタラクティブシェルが行う
シェルスクリプト実行前の処理だと思ってるので興味がないw
シェルスクリプト実行前の処理だと思ってるので興味がないw
2020/03/26(木) 17:59:15.96ID:1qTCm9gt
touchは空ファイルも作れるってだけで本来の用途はタイムスタンプの変更でしょ
catだって中身の連結が本来の用途なんだから
だけど実際はそれ以外でよく使うってお話
catだって中身の連結が本来の用途なんだから
だけど実際はそれ以外でよく使うってお話
2020/03/26(木) 21:46:26.12ID:qqZOjzAR
その昔は C プログラミングをするとき make で管理していた
make はタイムスタンプを見てどれをコンパイルするか決めていたため
touch で手動でどこからインストールするかを制御してた
touch の使い道はその辺かなあ
新しい file を作るなら
$ cp /dev/null file
の方が私の好みではある
make はタイムスタンプを見てどれをコンパイルするか決めていたため
touch で手動でどこからインストールするかを制御してた
touch の使い道はその辺かなあ
新しい file を作るなら
$ cp /dev/null file
の方が私の好みではある
2020/03/27(金) 02:36:47.10ID:0z/Q98b2
新しいファイルを作るなら
:>file
コマンド呼び出ししないから最短で最速!
:>file
コマンド呼び出ししないから最短で最速!
2020/03/27(金) 09:46:48.87ID:fxzLTj3v
touchに代わるいい名前ないかね?
2020/03/27(金) 13:51:42.45ID:dcpdkXkw
別に違和感とか全くないな
open(2)で無かったら作るというのがあるし
open(2)で無かったら作るというのがあるし
2020/03/27(金) 18:04:12.08ID:0RYt9ExS
「touchがよくない名前」って考えてるあたり,
touchの*本来の*目的が「ファイルを新規作成すること」だと思ってそう。
touchの*本来の*目的が「ファイルを新規作成すること」だと思ってそう。
2020/03/27(金) 18:18:20.83ID:5yAR8wFh
$ man touch
TOUCH(1) User Commands TOUCH(1)
NAME
touch - change file timestamps
TOUCH(1) User Commands TOUCH(1)
NAME
touch - change file timestamps
27デフォルトの名無しさん
2020/03/27(金) 19:25:21.80ID:zXBqI+VJ 唾を付けておくという表現が英語にあれば
spitだろう。
spitだろう。
2020/03/27(金) 20:52:54.59ID:OSmxssGw
お願いtouch touch ここにtouch
29デフォルトの名無しさん
2020/03/28(土) 00:10:04.43ID:UOUptx4u >>22
>file
>file
2020/03/28(土) 10:24:50.05ID:KzFz1ENP
>>29
それPOSIX準拠?
それPOSIX準拠?
2020/03/28(土) 13:22:16.30ID:KzFz1ENP
算術展開 $(()) って、代入文が使えるんだな。
ループ廻すときに,i=$((i + 1))っていう増分と$iの値の判定を別々にやってたのが,
$((i += 1))という値を判定するだけで済むとは。
ループ廻すときに,i=$((i + 1))っていう増分と$iの値の判定を別々にやってたのが,
$((i += 1))という値を判定するだけで済むとは。
2020/03/28(土) 14:59:32.82ID:Bw1KM2rM
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 中国「国連安保理の許可なしに日本攻撃可能」 Xで旧敵国条項に言及… ★5 [BFU★]
- 【千葉】コンビニに尿入りペットボトル並べた疑い、26歳男「むしゃくしゃして」…購入した客が飲もうとしたところ臭いに違和感 [ぐれ★]
- 中国官製報道「日本経済はもう持たない」にネット民ツッコミ「ニュースだけ見てたら日本はもう百回くらい爆発してる」 [1ゲットロボ★]
- 植田日銀総裁 「円安進行が物価高を起こしている」 ★4 [お断り★]
- 【硬貨】500円だと思ったら「500ウォンが入っていた」価値は約10分の1 全国で飲食店などで“500ウォントラブル”相次いで報告 [ぐれ★]
- 《悩みは渡航費》チアリーディング世界大会に出場決定も… 円安で航空費や宿泊費で1人70万円以上が必要 クラファンなどで寄付募る [冬月記者★]
- WTO世界のコメ🌾価格は記録的な豊作により1年で35%下落(5キロで200円程度)と発表※日本は1年で3倍値上がり [709039863]
- 現役JKのお茶会スレ( ¨̮ )︎︎𖠚ᐝ157
- 自分、馬鹿なのでおっしゃる意味がわかりません
- 【ぺこ専🐰】なんG 兎田ぺこら突発配信実況スレ🏡【ホロライブ▶】
- NHKニュースウオッチ9「日本側は対話にオープンな姿勢で安定した日中関係を築きたい考えなのに中国が意固地で糸口が見いだせない」 [904151406]
- あのちゃんとかいう人は、いつまであの喋り方すんの?
