2ちゃんねる スマホ用 ■掲示板に戻る■ 全部 1- 最新50    
レス数が1000を超えているけど、まだ書けるかも知れないよ。

シェルスクリプト総合 その24

1 :名無しさん@お腹いっぱい。:2014/11/11(火) 00:54:03.43 .net
シェルスクリプトの総合スレです。
□お約束
・特記なき場合はBourne Shell(/bin/sh)がデフォルトです。
 bash/zsh/ksh/ashなどに依存する場合は明示しましょう。
 Linuxユーザは/bin/shの正体がbashまたはdashなので特に注意。
 FreeBSDユーザは/bin/shの正体がashなので注意。
 v7 shに一番近くて、現役のshは、OpenSolaris由来のheirloom sh。
  http://src.opensolaris.org/source/xref/onnv/onnv-gate/usr/src/cmd/sh/
  http://heirloom.sourceforge.net/sh.html
・csh/tcshのシェルスクリプトは推奨されません。
 (理由は「csh-whynot」でググれ)
・UNIXにはシェルスクリプトに便利な小さなコマンドがいろいろあります。
 manや参考リンクを見ましょう。
 aproposないしはman -kでそれらしい単語による簡単な検索もできます。
・シェルで使えるワイルドカード等は正規表現ではありません。
 正規表現の話題はスレ違い(正規表現スレへ)
・シェルスクリプトのことをシェルってゆーな
□初心者へのアドバイス:
・適した道具を判断するのも頭の重要な使い方。シェルスクリプトよりも
 awkまたはperlの方が適した処理にはそちらを使いましょう。
・知らないコマンドが出てきたらmanを引きましょう。
・思い通りに動かないときは、まずは sh -x でトレースしましょう。
□回答者への注意事項:
・シェルスクリプトでの処理方法を質問しているのに、よくわからずに
 「そういうのはperl使いましょう」と回答するのはやめましょう。
 安易にperlに逃げずにシェルスクリプトで処理するのが頭のいいやり方。
前スレ
シェルスクリプト総合 その23
http://peace.2ch.net/test/read.cgi/unix/1404204950/

951 :名無しさん@お腹いっぱい。:2015/08/07(金) 14:36:35.67 .net
>>946の内容だけでは何に困難を感じているのかがわからない

1) 第x話や#x、第x章のxを切り出すよい方法がわからないのか、それとも
2) ゼロパディングする方法がわからないのか

もし1)なら、ゼロパディングする方法は関係ないし
もし2)なら、xを切り出す方法は関係ない

>核心の部分を飛ばしてどうするw
と言っている>>950は、したがって>>946さんの問題は1)だと解釈したことになる。
もし1)が「核心の問題」であるのなら
>>946さんはなぜ「ゼロパディングして桁数を揃えたい」と書いたのだろう?

ということで、>>946さんに何をしたいかもうちょっと具体的に言ってもらう必要があると思うよ。

952 :名無しさん@お腹いっぱい。:2015/08/07(金) 15:09:50.57 .net
いや、sedでゴニョゴニョすればできるのは知ってるけどそれだと誤動作が恐いから、
すでにそういう第x話とかの変換に対応した専用コマンドはないか?という質問だから。
答えは、「ない」

953 :名無しさん@お腹いっぱい。:2015/08/07(金) 15:47:21.26 .net
誤変換が恐いなら確認してから走らせればいいん者ね?
sed -n 's/ごにょ/ごにょ/p'

で変更部分だけ出力されるから、
大丈夫なら sed -i 入れて実行

954 :名無しさん@お腹いっぱい。:2015/08/07(金) 15:50:28.93 .net
>普通に考えるとsedなんだけど誤変換怖い

どんな場面で誤変換になるの?

955 :名無しさん@お腹いっぱい。:2015/08/07(金) 17:03:38.05 .net
シェルスクリプトだけで、ツイッターのBot動かしている人っていますか?

956 :名無しさん@お腹いっぱい。:2015/08/07(金) 17:33:51.82 .net
>>952
そんな単一用途を求める時点でシェルスクリプトである必要ない
あなたにはファイル名変換君がお似合いです

957 :名無しさん@お腹いっぱい。:2015/08/07(金) 19:52:08.40 .net
動かしている人がいるかどうかを聞いてるんです

958 :名無しさん@お腹いっぱい。:2015/08/07(金) 20:25:15.45 .net
そんな事どこで聞いてるんだ?

959 :名無しさん@お腹いっぱい。:2015/08/07(金) 21:15:22.11 .net
>>953
ふつうはそういうことしてからここで質問するよね

>>954
どんな誤変換か自分も知りたい

960 :名無しさん@お腹いっぱい。:2015/08/08(土) 12:09:25.42 .net
第1章-序章.mp4
:
第5章-ホゲホゲ34歳の不倫part1.mp4
第6章-ホゲホゲ34歳の不倫part2.mp4
:

とか??

961 :名無しさん@お腹いっぱい。:2015/08/08(土) 19:30:56.99 .net
grepに、Pオプションなんてあったのか。sedにも欲しいスイッチだ

962 :名無しさん@お腹いっぱい。:2015/08/08(土) 21:18:40.90 .net
>>961
先読み・後読みが使えるのは便利

963 :名無しさん@お腹いっぱい。:2015/08/09(日) 07:15:54.88 .net
#cat a.txt
aaaaa bbbbb ccccc

#printf "ddddd " >> a.txt
#cat a.txt
aaaaa bbbbb ccccc
ddddd
#printf "eeeee " >> a.txt
#printf "fffff " >> a.txt
#printf "ggggg " >> a.txt
#cat a.txt
aaaaa bbbbb ccccc
ddddd eeeee fffff ggggg


なんで1回目の追記のときだけ改行が入っちゃうの? 👀
Rock54: Caution(BBR-MD5:0be15ced7fbdb9fdb4d0ce1929c1b82f)


964 :名無しさん@お腹いっぱい。:2015/08/09(日) 07:42:06.61 .net
a.txtの最後に改行が入ってるから

965 :名無しさん@お腹いっぱい。:2015/08/09(日) 07:46:01.85 .net
つーかこんなのprintf "aaaaa " > a.txtからやれよ
何をやりたいんだよ
なんでa.txtがどういう状態か分かるんだよ

966 :名無しさん@お腹いっぱい。:2015/08/09(日) 07:58:50.20 .net
rootで実行するなよw

967 :名無しさん@お腹いっぱい。:2015/08/09(日) 10:00:28.82 .net
>>966
なんで?

968 :名無しさん@お腹いっぱい。:2015/08/09(日) 10:04:18.10 .net
本来いじられたくないrootでしか編集できないファイルを簡単に上書くから

969 :名無しさん@お腹いっぱい。:2015/08/09(日) 16:18:41.93 .net
rootでしか編集できないファイルをいじるスクリプトを書いてるのかもしれない

970 :名無しさん@お腹いっぱい。:2015/08/09(日) 18:08:05.24 .net
>>963 みたいな質問する奴にroot権限渡すな

971 :名無しさん@お腹いっぱい。:2015/08/10(月) 12:25:15.29 .net
昔は共同浴場みたいな感じで番台の管理者さんに断って
みんなで風呂に過いるイメージだったけど、今は家風呂
個人の管理ってイメージだから、ユーザ=rootの時代だよね。
そう言う意味ではUNIXそのものの考え方をパーソナルに考え直す
という手間暇を惜しんだところが負けだと思うわ。

972 :名無しさん@お腹いっぱい。:2015/08/10(月) 20:06:59.81 .net
UNIXベースのOSは過去最高に一般人に普及してるんだけどなにに負けたんだ?

973 :名無しさん@お腹いっぱい。:2015/08/11(火) 01:39:01.94 .net
わかってるくせにw

974 :名無しさん@お腹いっぱい。:2015/08/11(火) 08:56:44.41 .net
>>972
androidをUNIXベースと考えるかどうかで勝敗は変わるんじゃないの?

975 :名無しさん@お腹いっぱい。:2015/08/11(火) 11:03:46.05 .net
iOSだってUNIXだよ

976 :名無しさん@お腹いっぱい。:2015/08/11(火) 13:12:49.80 .net
windowsだってunixかもしれないよ

977 :名無しさん@お腹いっぱい。:2015/08/11(火) 13:15:39.19 .net
ケンタッキーフライドチキンもUNIXだしな

978 :名無しさん@お腹いっぱい。:2015/08/11(火) 13:41:34.72 .net
POSIX互換なのはWindows2000までだっけ

979 :名無しさん@お腹いっぱい。:2015/08/11(火) 22:28:27.88 .net
美容室もUNIXだしな

980 :名無しさん@お腹いっぱい。:2015/08/12(水) 01:15:37.26 .net
>>971
sudoは答えの一つだと思うがどうか?

981 :名無しさん@お腹いっぱい。:2015/08/12(水) 07:34:06.58 .net
単にインストールして設定して満足って人が多くなったからだろう
そりゃrootしか使わんわ

でもWindowsとかアドミン権限じゃないユーザで使ってる人結構多くて
いい意味でびっくりすることがある

982 :名無しさん@お腹いっぱい。:2015/08/12(水) 10:29:07.02 .net
個人ユースなんてサーバー用途だが多いだろうからログインするとき=rootじゃなきゃ出来ない作業をするときじゃないか?

983 :名無しさん@お腹いっぱい。:2015/08/12(水) 11:18:27.54 .net
いやちがう
管理者がいないから自分が管理者なだけ

984 :名無しさん@お腹いっぱい。:2015/08/12(水) 11:23:24.46 .net
>個人ユースなんてサーバー用途だが多い
んなこたーない

985 :名無しさん@お腹いっぱい。:2015/08/12(水) 12:47:36.66 .net
sudo を使うことすら面倒くさいと言うのか…

986 :名無しさん@お腹いっぱい。:2015/08/12(水) 13:36:17.12 .net
何の話だったっけ

987 :名無しさん@お腹いっぱい。:2015/08/12(水) 14:25:02.72 .net
cshからbashに移行した場合
.cshrcってターミナル起動した時に読み込まれなくなってしまいますか?

988 :名無しさん@お腹いっぱい。:2015/08/12(水) 14:54:50.56 .net
コマンド打つ

#になってないと実行できないコマンドだった

コマンド打ち直す


最初から#

コマンド打つ

確実に成功


後者のほうが効率がよい

989 :名無しさん@お腹いっぱい。:2015/08/12(水) 15:03:47.83 .net
以下の結果を出力するシェルを,bashスクリプトで書け.
(基本仕様)
・コマンドとして実行できる.(シェルコマンドである.)
・ユーザーが10000以上99999以下の5桁の数字を入力する.
・その数字を7で割って1余り,かつ13で割って2余った場合は Daikichiと表示する.
・それ以外で,13で割って2余った場合は Chuukichiと表示する.
・それ以外で,7で割って1余った場合は Shoukichiと表示する.
・それ以外の場合は Hazureと表示する.
・入力した文字が10000以上99999以下の数字以外の場合はエラーメッセージを表示する.
・できる人は,コマンドライン引数でDaikichiなどの文字を変更できるようにする.
(ポイント)
☆シェルコマンドにするには,スクリプトの最初に(#!で始まる)おまじないを書く.
☆標準入力から文字列を入力するには read を用いる.
☆コマンドラインの引数は,$@に格納されている.(その要素は $1 $2 ...)
☆四則演算には $(( )) コマンドが使用できる.(ただし,整数しか扱えない.)


誰かわかるひとお願いします

990 :名無しさん@お腹いっぱい。:2015/08/12(水) 15:54:32.72 .net
>>989
来年はちゃんと授業聞こうな

991 :名無しさん@お腹いっぱい。:2015/08/12(水) 17:01:02.35 .net
私は講師です。ちょっと問題の反応を見たいのでここで聞いてみてるんですが、、

992 :名無しさん@お腹いっぱい。:2015/08/12(水) 17:11:49.67 .net
お盆休みはきちんと休んだほうがいい

993 :名無しさん@お腹いっぱい。:2015/08/12(水) 17:24:59.92 .net
> 誰かわかるひとお願いします
> 私は講師です。
講師CCO騙るにしてもこれは酷いw
遊びたかったら人狼逝け

994 :名無しさん@お腹いっぱい。:2015/08/12(水) 18:07:03.66 .net
なんで私が出した課題がここに貼られてるんですかね

995 :名無しさん@お腹いっぱい。:2015/08/12(水) 20:18:03.71 .net
bashでスクリプト書かせるなよ。

996 :名無しさん@お腹いっぱい。:2015/08/12(水) 20:45:32.93 .net
RANDOM使っちゃえよ
結果だけならどうせバレない

997 :名無しさん@お腹いっぱい。:2015/08/12(水) 21:26:42.33 .net
>>995
なんで?

998 :名無しさん@お腹いっぱい。:2015/08/12(水) 22:53:02.21 .net
>>991
ユーザーの入力が標準入力である、
というのが問題中に載ってないのは
よくないと思う。直しておいて。

999 :名無しさん@お腹いっぱい。:2015/08/13(木) 00:25:40.34 .net
>>987
文法がそもそも違う

>>995
#!/bin/sh
ruby <<< EOF
puts("Daikichi")
EOF
#とかでもよくね

1000 :名無しさん@お腹いっぱい。:2023/11/23(木) 19:54:52.67 ID:mNysEr30Y
test

240 KB
新着レスの表示

掲示板に戻る 全部 前100 次100 最新50
名前: E-mail (省略可) :

read.cgi ver 2014.07.20.01.SC 2014/07/20 D ★