シェルスクリプトの総合スレです。
□お約束
・特記なき場合は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.illumos.org/source/xref/illumos-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に逃げずにシェルスクリプトで処理するのが頭のいいやり方。
前スレ
シェルスクリプト総合 その25
http://echo.2ch.net/test/read.cgi/unix/1439563321/
シェルスクリプト総合 その26 [無断転載禁止]©2ch.net
■ このスレッドは過去ログ倉庫に格納されています
2017/03/20(月) 12:07:26.41
2017/10/21(土) 01:36:03.89
2017/10/21(土) 08:08:40.09
もしかして RFC とかで実装が統一されてんのか。
382370
2017/10/21(土) 14:49:37.55 >>378
cdについてはPOSIXで決まっている
http://pubs.opengroup.org/onlinepubs/9699919799/utilities/cd.html
の8のc
>>379
シェル一部であるcdコマンドの機能
>>380
それはまた別の話
cdについてはPOSIXで決まっている
http://pubs.opengroup.org/onlinepubs/9699919799/utilities/cd.html
の8のc
>>379
シェル一部であるcdコマンドの機能
>>380
それはまた別の話
2017/10/21(土) 14:51:29.58
$ /bin/echo /usr////bin///////
/usr////bin///////
$
となるので、lsについてはシェルが解釈してるわけではなくlsが解釈していると思われる
/usr////bin///////
$
となるので、lsについてはシェルが解釈してるわけではなくlsが解釈していると思われる
2017/10/21(土) 14:55:41.90
まあ//を~にしたいならシェルのキーバインド使えばいいんじゃないですかね
2017/10/21(土) 15:01:35.03
ちなみにこんなんなったりする
シェルの種類によって挙動は違うかも
$ cd //
$ pwd
//
$
理由は
http://www.unixguide.net/unix/bash/E10.shtml
シェルの種類によって挙動は違うかも
$ cd //
$ pwd
//
$
理由は
http://www.unixguide.net/unix/bash/E10.shtml
2017/10/21(土) 15:03:36.25
キーバインドいじっちゃうと
「http://」を打とうとして「http:~」になったりして困らないか
「http://」を打とうとして「http:~」になったりして困らないか
2017/10/22(日) 16:52:10.67
>>382
「An implementation may」だから必ずではないのでは
「An implementation may」だから必ずではないのでは
2017/10/22(日) 21:04:49.39
必ずって言ったっけ
2017/10/22(日) 21:24:08.21
bashはパス中の複数の/を一つにするはず
2017/10/22(日) 22:40:16.51
2017/10/26(木) 13:24:16.45
ファイルをリネームしてコピーし続けるスクリプトなんですが
コマンドが見つからないと出てよくわかりません
#/bin/sh
PATH='/var/log/'
PATH2='dnsmasq.log'
DOT='.'
for i in 6 5 4 3 2 1
do
PATH3=$PATH$PATH2$DOT$i
PATH4=`expr $i - 1`
PATH5=$PATH$PATH2$DOT$PATH4
mv $PATH5 $PATH3
done
PATH6=0
mv $PATH$PATH2 $PATH$PATH2$PATH6
exit 0
コマンドが見つからないと出てよくわかりません
#/bin/sh
PATH='/var/log/'
PATH2='dnsmasq.log'
DOT='.'
for i in 6 5 4 3 2 1
do
PATH3=$PATH$PATH2$DOT$i
PATH4=`expr $i - 1`
PATH5=$PATH$PATH2$DOT$PATH4
mv $PATH5 $PATH3
done
PATH6=0
mv $PATH$PATH2 $PATH$PATH2$PATH6
exit 0
2017/10/26(木) 13:29:36.84
2017/10/26(木) 13:30:47.44
sh -xで実行してみると以下の通り出力されました
+ PATH=/var/log/
+ PATH2=dnsmasq.log
+ DOT=.
+ PATH3=/var/log/dnsmasq.log.6
+ expr 6 - 1
./splitLog.sh: 1: ./splitLog.sh: expr: not found
+ PATH4=
+ PATH5=/var/log/dnsmasq.log.
+ mv /var/log/dnsmasq.log. /var/log/dnsmasq.log.6
./splitLog.sh: 12: ./splitLog.sh: mv: not found
(省略)
+ PATH3=/var/log/dnsmasq.log.1
+ expr 1 - 1
./splitLog.sh: 1: ./splitLog.sh: expr: not found
+ PATH4=
+ PATH5=/var/log/dnsmasq.log.
+ mv /var/log/dnsmasq.log. /var/log/dnsmasq.log.1
./splitLog.sh: 12: ./splitLog.sh: mv: not found
+ PATH6=0
+ mv /var/log/dnsmasq.log /var/log/dnsmasq.log0
./splitLog.sh: 17: ./splitLog.sh: mv: not found
+ exit 0
+ PATH=/var/log/
+ PATH2=dnsmasq.log
+ DOT=.
+ PATH3=/var/log/dnsmasq.log.6
+ expr 6 - 1
./splitLog.sh: 1: ./splitLog.sh: expr: not found
+ PATH4=
+ PATH5=/var/log/dnsmasq.log.
+ mv /var/log/dnsmasq.log. /var/log/dnsmasq.log.6
./splitLog.sh: 12: ./splitLog.sh: mv: not found
(省略)
+ PATH3=/var/log/dnsmasq.log.1
+ expr 1 - 1
./splitLog.sh: 1: ./splitLog.sh: expr: not found
+ PATH4=
+ PATH5=/var/log/dnsmasq.log.
+ mv /var/log/dnsmasq.log. /var/log/dnsmasq.log.1
./splitLog.sh: 12: ./splitLog.sh: mv: not found
+ PATH6=0
+ mv /var/log/dnsmasq.log /var/log/dnsmasq.log0
./splitLog.sh: 17: ./splitLog.sh: mv: not found
+ exit 0
2017/10/26(木) 13:46:18.65
とりあえず何がしたいかを書け
そんな汚いもん見せられても何がしたいのか分かりにくい
そんな汚いもん見せられても何がしたいのか分かりにくい
2017/10/26(木) 13:51:57.00
PATH潰すんなら外部コマンドはフルパスで書かんと
2017/10/26(木) 14:02:38.34
フルパスで書かないといけなかったんですね…
修正してみたらできました、ありがとうございます!
修正してみたらできました、ありがとうございます!
2017/10/26(木) 14:11:58.47
ようわからんがsavelogコマンドみたいなことがしたいのか
2017/10/26(木) 14:27:19.72
PATHがきしょい
2017/10/26(木) 15:33:20.43
2017/10/26(木) 15:35:16.21
これ1〜6までファイル全部消えるんじゃね?
2017/10/26(木) 15:35:32.78
1から6まで
402400
2017/10/26(木) 15:37:15.23 あ、すまん勘違い
逆だった
逆だった
2017/10/26(木) 16:21:22.80
5を6にリネーム~0を1にリネーム
そのあと最新のログを0にリネームじゃないかな
どっちにしろゴリ押し感半端ないが
そのあと最新のログを0にリネームじゃないかな
どっちにしろゴリ押し感半端ないが
2017/10/26(木) 16:30:18.25
2017/10/26(木) 16:37:04.75
あーそういうことか、403のお陰でやりたいことは分かった
2017/10/26(木) 18:34:54.50
こうすればわかりやすいですかね
#!/bin/sh
DIR=/var/log/
FILE=dnsmasq.log;
START=0
for i in `seq 1 6`
do
DEC=`expr $i - 1`
cd $DIR
mv "${FILE}.${DEC}" "${FILE}.${i}"
done
cd $DIR
mv $FILE "${FILE}.${START}"
exit 0
#!/bin/sh
DIR=/var/log/
FILE=dnsmasq.log;
START=0
for i in `seq 1 6`
do
DEC=`expr $i - 1`
cd $DIR
mv "${FILE}.${DEC}" "${FILE}.${i}"
done
cd $DIR
mv $FILE "${FILE}.${START}"
exit 0
2017/10/26(木) 18:56:39.92
毎回cdするのは無駄やろ
2017/10/26(木) 19:01:29.48
個人的にexpr嫌いなのもあって$(())使っちゃうな
mv "${FILE}.$((i-1))" "${FILE}.$i"
あとseq間違ってね?
seq 6 1 -1
mv "${FILE}.$((i-1))" "${FILE}.$i"
あとseq間違ってね?
seq 6 1 -1
2017/10/26(木) 19:25:35.16
これだと全部ログ.0になっちゃいますね
ありがとうございます!
ありがとうございます!
2017/10/28(土) 17:54:16.26
logrotateの真似したいのかな
2017/10/28(土) 19:36:18.05
素直にそっち使った方が楽に出来るよね
2017/10/28(土) 22:25:53.38
そっちを使うほうが楽、ということを学習するにはまずは自分で書いてみて、大変だぜてことを理解しないと
2017/10/31(火) 13:10:26.11
昔solarisで見たlogrotateはshell scriptだった
どこかで見れれば参考になるかも
どこかで見れれば参考になるかも
2017/10/31(火) 13:39:18.79
あれはあんまりきれいじゃないから参考にしない方がいい
2017/10/31(火) 13:48:20.70
この /usr/lib/newsyslog ね
http://www.tcp-ip.or.jp/~ikken/intra/check.txt
http://www.tcp-ip.or.jp/~ikken/intra/check.txt
2017/10/31(火) 15:47:40.56
2017/11/02(木) 04:12:26.82
2017/11/03(金) 04:26:36.66
X Windows System で,どの IMF が用いられているか判別する方法を考えている。
思い付いたのは $XMODIFIERS 環境変数を用いた
case $XMODIFIERS in
  *ibus)
    local _imf=ibus
    ;;
  *fcitx)
    local _imf=fcitx
    ;;
  *uim)
    local _imf=uim
    ;;
  *SCIM)
    local _imf=scim
    ;;
esac
なんだけど,$XMODIFIERS が必ず設定されているとは限らないし,なんか漏らしてる気がしてならん……。
思い付いたのは $XMODIFIERS 環境変数を用いた
case $XMODIFIERS in
  *ibus)
    local _imf=ibus
    ;;
  *fcitx)
    local _imf=fcitx
    ;;
  *uim)
    local _imf=uim
    ;;
  *SCIM)
    local _imf=scim
    ;;
esac
なんだけど,$XMODIFIERS が必ず設定されているとは限らないし,なんか漏らしてる気がしてならん……。
2017/11/03(金) 04:29:53.86
ツールで投稿したら空白がエラいことになった。すまん。
2017/11/03(金) 07:20:14.85
Shell Scriptのコメントアウトに
# @(#) Foo is foo.
みたいな文字を書いておいて
$ what ./foo.sh
とやると
Foo is foo
という表示がでるというようなwhatコマンドがあるらしいのですが
手元のFedora26に見付かりません。($ dnf search what, $ dnf provides what)
どこかにありますでしょうか。
# @(#) Foo is foo.
みたいな文字を書いておいて
$ what ./foo.sh
とやると
Foo is foo
という表示がでるというようなwhatコマンドがあるらしいのですが
手元のFedora26に見付かりません。($ dnf search what, $ dnf provides what)
どこかにありますでしょうか。
2017/11/03(金) 08:32:21.55
Linuxの質問はLinux板で
2017/11/03(金) 10:09:39.61
>>420
whatはかつて使われていたSCCSというソースコード管理システムに入っていたコマンド
現在はGNU CSSCがSCCSと同等の機能を提供している
なのでcsscというパッケージを探す
なければhttps://www.gnu.org/software/cssc/へGO!
whatはかつて使われていたSCCSというソースコード管理システムに入っていたコマンド
現在はGNU CSSCがSCCSと同等の機能を提供している
なのでcsscというパッケージを探す
なければhttps://www.gnu.org/software/cssc/へGO!
2017/11/20(月) 15:39:18.57
case文で
$1がhogeで、$2がhageの場合のみ処理Aを実行する
みたいなのできないでしょうか?
$1がhogeで、$2がhageの場合のみ処理Aを実行する
みたいなのできないでしょうか?
2017/11/20(月) 15:49:53.05
入れ子にすりゃいい
2017/11/20(月) 15:56:36.27
$1にも$2にも含まれ得ない文字を区切りにして連結
2017/11/20(月) 16:00:08.82
2017/11/20(月) 16:22:06.48
caseで実装するなら入れ子かね
しかしここでも髪の話するのか
しかしここでも髪の話するのか
2017/11/20(月) 17:07:40.56
2017/11/20(月) 18:39:46.60
2017/12/02(土) 09:15:00.24
すみません、bashでタブ区切りのファイルを配列に取り込む際、空の列が詰めて格納されてしまいます
そうならない方法はあるのでしょうか
exec < file.tsv
while read LINE
do
ARRAY=(${LINE})
done
そうならない方法はあるのでしょうか
exec < file.tsv
while read LINE
do
ARRAY=(${LINE})
done
2017/12/02(土) 10:11:05.91
>>430
変数の参照部分を引用符で囲むとか。
#!/bin/sh -
exec < file.tsv
while read LINE; do
ARRAY=("$LINE")
done
echo "$ARRAY"
IFS の値を空にするとか。
#!/bin/sh -
IFS=
exec < file.tsv
while read LINE; do
ARRAY=($LINE)
done
echo $ARRAY
変数の参照部分を引用符で囲むとか。
#!/bin/sh -
exec < file.tsv
while read LINE; do
ARRAY=("$LINE")
done
echo "$ARRAY"
IFS の値を空にするとか。
#!/bin/sh -
IFS=
exec < file.tsv
while read LINE; do
ARRAY=($LINE)
done
echo $ARRAY
2017/12/02(土) 10:16:16.70
あ,5ch ってコード貼るのまずいんだっけ。しくったな。
まあこんなくだらないコードに著作権云々関係ないかw
まあこんなくだらないコードに著作権云々関係ないかw
433名無しさん@お腹いっぱい。
2017/12/02(土) 10:37:47.622017/12/03(日) 07:15:44.68
早速検証してみます、ありがとうございます!
2017/12/05(火) 08:37:43.17
検証した結果、IFSを改行のみにして読み込み、その文字列をCutで抜くで達成できました
こうしないと空文字の列が詰まってしまいました
IFS_BAK=IFS
IFS=$'¥n'
exec < file.tsv
while read LINE
do
echo "${LINE}" | cut -f1 >> tmp1.txt
echo "${LINE}" | cut -f2 >> tmp2.txt
done
IFS=IFS_BAK
こうしないと空文字の列が詰まってしまいました
IFS_BAK=IFS
IFS=$'¥n'
exec < file.tsv
while read LINE
do
echo "${LINE}" | cut -f1 >> tmp1.txt
echo "${LINE}" | cut -f2 >> tmp2.txt
done
IFS=IFS_BAK
2017/12/05(火) 09:20:20.37
437433
2017/12/06(水) 10:04:48.53 >>430
今ごろ勘違いに気づいた
mapfileじゃ全然見当外れじゃないか…なんかごめん
たとえば
IFS=$'\t'
line="${IFS}b"
このとき
a=(${line})
で
a=("" "b")
となるのを期待しているのだけど、実際にはクオートしていないので
a=( b)
と同じことになって、先頭の「空の列」は残らない
かといってクオートしたら
a=("${line}")
これはタブ区切りで分割されることなく行全体がそのままになるので意味がない…
ということだよね
>>435のようにファイルに書き出すだけなら、そうやってcutでやるのが扱いやすそうだけど
もしどうしても配列にする必要があるときは、こんな感じでどうだろう
https://ideone.com/uPfCwc
空だと消えてしまうなら空にならないよう何か入れとけばいいじゃない(配列にしてから取り除く)
という案
今ごろ勘違いに気づいた
mapfileじゃ全然見当外れじゃないか…なんかごめん
たとえば
IFS=$'\t'
line="${IFS}b"
このとき
a=(${line})
で
a=("" "b")
となるのを期待しているのだけど、実際にはクオートしていないので
a=( b)
と同じことになって、先頭の「空の列」は残らない
かといってクオートしたら
a=("${line}")
これはタブ区切りで分割されることなく行全体がそのままになるので意味がない…
ということだよね
>>435のようにファイルに書き出すだけなら、そうやってcutでやるのが扱いやすそうだけど
もしどうしても配列にする必要があるときは、こんな感じでどうだろう
https://ideone.com/uPfCwc
空だと消えてしまうなら空にならないよう何か入れとけばいいじゃない(配列にしてから取り除く)
という案
2017/12/11(月) 05:34:31.40
>>437
回答が遅れてすみませんでした
なるほど…その手はいけるんですね
ありがとうございます、活用させていただきます
自分は今回縛りがあってbashだけでやっているのですが、可能なら他のスクリプトに任すべきかな…(´・ω・`)
回答が遅れてすみませんでした
なるほど…その手はいけるんですね
ありがとうございます、活用させていただきます
自分は今回縛りがあってbashだけでやっているのですが、可能なら他のスクリプトに任すべきかな…(´・ω・`)
2017/12/14(木) 00:31:41.37
そこは「他のシェルに」じゃないか
440名無しさん@お腹いっぱい。
2017/12/29(金) 06:50:06.02 誰でも簡単にパソコン1台で稼げる方法など
参考までに、
⇒ 『宮本のゴウリエセレレ』 というブログで見ることができるらしいです。
グーグル検索⇒『宮本のゴウリエセレレ』
PPEE18BYYA
参考までに、
⇒ 『宮本のゴウリエセレレ』 というブログで見ることができるらしいです。
グーグル検索⇒『宮本のゴウリエセレレ』
PPEE18BYYA
441名無しさん@お腹いっぱい。
2018/01/08(月) 17:53:30.81 はじめまして
早速で申し訳ないのですが、以下のシェルスクリプトでdoを含むコマンドが一切使用できません。理由と解決策を教えてください。
#!/bin/sh
dir=`dirname ${0}`
echo -n "探す拡張子="
read que
ans=$(find ${dir} -name *.${que} | awk -F/ '{print $NF}')
if [ -z "${ans}" ];then
echo "${que}は見つかりませんでした。\n終了します。"
exit
else
echo "${ans}"
fi
早速で申し訳ないのですが、以下のシェルスクリプトでdoを含むコマンドが一切使用できません。理由と解決策を教えてください。
#!/bin/sh
dir=`dirname ${0}`
echo -n "探す拡張子="
read que
ans=$(find ${dir} -name *.${que} | awk -F/ '{print $NF}')
if [ -z "${ans}" ];then
echo "${que}は見つかりませんでした。\n終了します。"
exit
else
echo "${ans}"
fi
442名無しさん@お腹いっぱい。
2018/01/08(月) 17:59:26.222018/01/08(月) 18:43:33.26
doが何のこと言ってるのかよくわからんが実行の仕方が間違ってんじゃね
まず問題がどこにあるかを明確に切り分けろ
まず問題がどこにあるかを明確に切り分けろ
444名無しさん@お腹いっぱい。
2018/01/08(月) 20:31:51.74 >>443
さっき書き直したのですが、改善しませんでした。
エラー内容はさっきと同じで、 Syntax error: "do" unexpectedです。
441でも、どこに記述しても変わらなかったため、問題の部分を消して使っていたので、doの部分を貼り忘れてました。すみませんでした。
#!/bin/sh
dir=`dirname ${0}`
echo -n "検索する拡張子:"
read que
while [ -z "${que}" ]
do #ここのdoは問題なし。
echo -n "拡張子を入力してください。\n検索する拡張子:"
read que
done
ans=$(find ${dir} -name *.${que} | awk -F/ '{print $NF}')
if [ -z "${ans}" ];then
echo "${que}は見つかりませんでした。\n終了します。"
exit
else
echo "${ans}"
fi
#============ここから問題の部分===========
select var in ${ans}終了
do
if [ ${var} = 終了 ];then
exit
fi
if [ ${que} = gz -o xz];then
tar -xf ${dir}${var}
fi
done
さっき書き直したのですが、改善しませんでした。
エラー内容はさっきと同じで、 Syntax error: "do" unexpectedです。
441でも、どこに記述しても変わらなかったため、問題の部分を消して使っていたので、doの部分を貼り忘れてました。すみませんでした。
#!/bin/sh
dir=`dirname ${0}`
echo -n "検索する拡張子:"
read que
while [ -z "${que}" ]
do #ここのdoは問題なし。
echo -n "拡張子を入力してください。\n検索する拡張子:"
read que
done
ans=$(find ${dir} -name *.${que} | awk -F/ '{print $NF}')
if [ -z "${ans}" ];then
echo "${que}は見つかりませんでした。\n終了します。"
exit
else
echo "${ans}"
fi
#============ここから問題の部分===========
select var in ${ans}終了
do
if [ ${var} = 終了 ];then
exit
fi
if [ ${que} = gz -o xz];then
tar -xf ${dir}${var}
fi
done
2018/01/08(月) 20:59:27.67
xz ]やないの?
シンタックスエラーって出てるんだからまず自分を疑おう
シンタックスエラーって出てるんだからまず自分を疑おう
2018/01/08(月) 21:01:57.76
どこに貼ってもだめならselectの構文がなんかおかしいんじゃないの
2018/01/08(月) 21:41:13.34
do unexpectedなら直前の「${ans}終了」ちゃうんけ
449名無しさん@お腹いっぱい。
2018/01/08(月) 22:01:36.46 >>448
変数じゃなくしても、終了を消しても、別の変数に変えてもSyntax error: "do" unexpectedは消えませんでした。
変数じゃなくしても、終了を消しても、別の変数に変えてもSyntax error: "do" unexpectedは消えませんでした。
2018/01/08(月) 22:17:55.91
とりあえず「間違いなく動作する」select構文をまず単品で書け
ネットのコピペでも構わん。出来る限りシンプルなやつで
動いたならそれを少しずつ改造して動かしてを繰り返しつつお前の目的に近づけろ
ネットのコピペでも構わん。出来る限りシンプルなやつで
動いたならそれを少しずつ改造して動かしてを繰り返しつつお前の目的に近づけろ
2018/01/08(月) 22:28:27.56
shでselectってできたっけ
2018/01/08(月) 23:44:18.33
SC2039: In POSIX sh, select loops are undefined.
bashならとりあえず動く、#!/bin/bash にしとけば
bashならとりあえず動く、#!/bin/bash にしとけば
453名無しさん@お腹いっぱい。
2018/01/08(月) 23:56:10.56454名無しさん@お腹いっぱい。
2018/01/08(月) 23:57:24.21 #!/bin/bash
PS3="入力してください:"
menu="曖昧 前方一致 後方一致 完全一致 拡張子"
echo "検索するディレクトリを入力してください
入力しなかった場合、このファイルがあるディレクトリを検索します。"
while [ -z "${dir}" ]
do
echo -n "ディレクトリ入力:"
read dir
if [ -e "${dir}" ];then
break
else
unset dir
echo "そのようなディレクトリはありません。"
fi
done
echo "検索方法を選択してください:"
>>455に続く
PS3="入力してください:"
menu="曖昧 前方一致 後方一致 完全一致 拡張子"
echo "検索するディレクトリを入力してください
入力しなかった場合、このファイルがあるディレクトリを検索します。"
while [ -z "${dir}" ]
do
echo -n "ディレクトリ入力:"
read dir
if [ -e "${dir}" ];then
break
else
unset dir
echo "そのようなディレクトリはありません。"
fi
done
echo "検索方法を選択してください:"
>>455に続く
455名無しさん@お腹いっぱい。
2018/01/08(月) 23:58:02.00 >>454続き
select var in ${menu}
do
echo ["${var}"]で検索します。
echo -n "検索する単語を入力してください:"
read que
case "${var}" in
曖昧)
ans=$(find ${dir} -name *"${que}"*);;
前方一致)
ans=$(find ${dir} -name "${que}"*);;
後方一致)
ans=$(find ${dir} -name *"${que}");;
完全一致)
ans=$(find ${dir} -name "${que}");;
拡張子)
ans=$(find ${dir} -name *."${que}");;
esac
echo "${ans}"
exit
done
select var in ${menu}
do
echo ["${var}"]で検索します。
echo -n "検索する単語を入力してください:"
read que
case "${var}" in
曖昧)
ans=$(find ${dir} -name *"${que}"*);;
前方一致)
ans=$(find ${dir} -name "${que}"*);;
後方一致)
ans=$(find ${dir} -name *"${que}");;
完全一致)
ans=$(find ${dir} -name "${que}");;
拡張子)
ans=$(find ${dir} -name *."${que}");;
esac
echo "${ans}"
exit
done
2018/01/09(火) 07:32:28.94
正直見辛いしその程度なら一行コマンド打つんでいらないっす
2018/01/09(火) 12:43:53.77
* が展開されてうまく動かなかった
2018/01/09(火) 20:01:44.41
Linuxの話ならLinux板で聞いてください
2018/01/10(水) 13:12:44.56
odコマンドって規定で行番号は付くは省略するわでほんとUNIX哲学的じゃねーな
xxdとかのほうが遥かに扱いやすいわ
xxdとかのほうが遥かに扱いやすいわ
2018/01/10(水) 16:21:53.96
行番号ちゃうし
2018/01/11(木) 12:57:39.11
od -An -v
2018/01/13(土) 15:24:43.34
規定がっていう話でしょ
それと同じで ls も規定で勝手に表示を整えるのをやめてほしい。
Plan 9のlsは規定でls -1みたいな挙動らしいけど。
それと同じで ls も規定で勝手に表示を整えるのをやめてほしい。
Plan 9のlsは規定でls -1みたいな挙動らしいけど。
2018/01/13(土) 15:30:27.80
規定なら従っといた方がいいじゃん
罰則あるかもしれんし
罰則あるかもしれんし
2018/01/13(土) 15:31:53.68
それは規約じゃ
2018/01/13(土) 19:01:27.06
default = 既定
2018/01/13(土) 22:58:37.21
違反すると罰則あるのは規定じゃなくて規約だろって話
2018/01/14(日) 10:57:30.90
だから「Default=規定」って書いたんじゃねーの?
規約じゃないって意味で。
規約じゃないって意味で。
2018/01/14(日) 11:45:22.78
ワケワカメ
2018/01/14(日) 15:52:04.52
なんだこの流れ
全員頭悪いの?
全員頭悪いの?
2018/01/14(日) 16:00:17.68
流れ?
2018/01/14(日) 16:20:16.87
全次郎?
2018/01/14(日) 17:49:06.78
規約じゃなくて規定なら別に従う必要ないって話なだけじゃないのか
2018/01/14(日) 17:50:28.44
default=既定≠規定
2018/01/14(日) 19:12:18.41
2018/01/14(日) 19:28:08.33
すまん誤字に全く気付かなかった
2018/01/14(日) 19:34:54.90
あーなるほどそういうことか。
普通に「既定」に脳内変換してたせいで意味不明な喧嘩に見えてたわ
普通に「既定」に脳内変換してたせいで意味不明な喧嘩に見えてたわ
2018/01/15(月) 00:06:01.79
脳内変換てw馬鹿なだけやんかw
2018/01/15(月) 08:02:47.35
すぐそうやって火種を撒く……
2018/01/15(月) 22:28:34.05
$'\n' こういう $'何か' っていう書き方って bash 限定?
sh でもいける?
sh でもいける?
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 小林よしのり 日中関係、来年は「ますます日本は不利に」「加害者の分際で被害者ぶって、中国が横暴だと毅然と振る舞っても滑稽なだけ」 [冬月記者★]
- 【金融】多重債務者急増、147万人 金融庁調査、物価高影響か [シャチ★]
- 元グラドル維新議員 夫に「サンドイッチのパン」を依頼→食パン6枚切り買われ怒り…“どちらが悪い?”SNSで議論 ★3 [muffin★]
- 『DOWNTOWN+』2回目生配信で松本の実兄・松本隆博が登場し共演 [jinjin★]
- 【サッカー】カズ・三浦知良、現役続行を表明 SNSで『引退勧告』殺到も… 対戦した選手「スピード、キレはないが体の使い方はうまい」 [冬月記者★]
- 【卓球】W杯 日本、中国に敗戦 日中関係悪化で超アウェー 日本への声援ほぼなし… 今大会は日本の対戦国に大声援が飛ぶ異様な雰囲気 [冬月記者★]
- 日本を破壊している高市が、ネトウヨから熱狂的に支持されてる。お前ら、日本がここまで壊れてるって理解できてた? [805596214]
- 「大規模な財政出動で景気の過熱を作り出し日本経済大復活!」高市政権が掲げる最強の経済理論とは [177178129]
- 【悲報】VTuber、やりに行ってる
- 【速報】日中戦争開始 [769931615]
- お前らってインターネットの基地外だからな
- リアリティっていう配信アプリあるんだけどさ
