シェルスクリプト総合@LINUX Part5at LINUX
シェルスクリプト総合@LINUX Part5 - 暇つぶし2ch827:login:Penguin
10/04/24 22:21:58 loCBys/t

大丈夫かな、この人・・・

828:login:Penguin
10/04/24 22:57:54 XH+rWnSs
笑っとけ笑っとけ。

829:login:Penguin
10/04/24 23:02:02 /2NBYvX3
>>826
修正してるじゃないか、 >>820

830:login:Penguin
10/04/24 23:03:08 loCBys/t
恥ずかしいね

831:login:Penguin
10/04/24 23:51:55 ra/w56Dm
>>825
あれで長いって、普段どんなスクリプト書いてんだ?

832:login:Penguin
10/04/25 09:35:32 iXPvNLwg
>>831
いや、引数が100個とかになってきたら。

潰しが利かない。

833:login:Penguin
10/04/25 09:37:17 pW61wlqY
意味不明

834:login:Penguin
10/04/25 09:39:20 iXPvNLwg
>>833
脊髄じゃなく、脳で考えてください。

835:login:Penguin
10/04/25 10:09:49 ZtdJByaw
その価値のある文章を頼む。

引数とはどの部分の引数なのか?
潰しが利かないという主張の根拠は?

836:login:Penguin
10/04/25 10:39:21 MLqGsd45
これ以上この話を続けても有益な情報は得られないと思う。

837:login:Penguin
10/04/25 11:27:46 iXPvNLwg
>>818
commandA > file
commandB >> file

{ commandA; commandB; } > file

コマンドが100個になったのでwhileで省力化したい。

上の方
rm -f file 2>/dev/null

while read cmd;do
$cmd >> file
done < cmds.txt


下の方
xargsを使えば出来そうだけど{}が内部コマンドなのが気になる。
1行のコマンドラインの文字数制限があるシェルもある。
ので、汎用性が無い。



838:login:Penguin
10/04/25 11:34:27 iXPvNLwg
制御構造の使えないシェルスクリプトなんて、バッチファイルの如く、無価値である。

839:login:Penguin
10/04/25 11:37:39 GR3waYM0
>>837
よくわかんねえけど
そのcmd.txtって、事実上シェルスクリプトだよな

単に
sh cmd.txt >file
でいいんじゃねえの

840:login:Penguin
10/04/25 11:46:22 gQNuPSjh
wwww

841:login:Penguin
10/04/25 11:49:42 iXPvNLwg
>>839
そだな。それが最適解だ。

842:login:Penguin
10/04/27 22:06:55 HNWNlh/r
for((i=0; i<6; i++)){
array=("${array[@]}" "i")
}

echo "${array[@]}"

これを実行すると下記のように出力されます。
0 1 2 3 4 5

カンマ区切りで下記のように出力する方法ありますか?
0, 1, 2, 3, 4, 5


843:login:Penguin
10/04/27 23:08:31 3UTvz9hd
>>842
最後の出力を実現するのなら seq -s ', ' 0 5 で済むけど、
配列の各要素を任意の区切文字で繋げて出力する方法を知りたいということかな

zsh/ksh なら echo ${(j:, :)array} でできるけど、bash でどうなのかは知らない

844:login:Penguin
10/04/27 23:18:40 HNWNlh/r
>>843
説明不足で申し訳ないです。

配列の各要素をカンマ区切りで出力する方法です。

・訂正します
array=(1 2 a b 3 c )
echo "${array[@]}"

これを実行すると下記のように出力されます。
1 2 a b 3 c

カンマ区切りで下記のように出力する方法ありますか?
1, 2, a, b, 3, c


echo ${(j:, :)array} は使えませんでした。

845:login:Penguin
10/04/27 23:37:13 wOLuHHkh
>>844
IFS="," ; echo "${array[*]}"


846:login:Penguin
10/04/28 10:15:03 ttzp8AMm
echo "${array[@]}" | sed 's/ /, /g'

847:844
10/04/28 11:26:50 +626EOW1
>>845-846
できました!ありがとうございました。



最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch