[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 1001- 2ch.scのread.cgiへ]
Update time : 01/02 10:31 / Filesize : 297 KB / Number-of Response : 1012
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

くだらねえ質問はここに書き込め! Part 238



1 名前:login:Penguin mailto:sage [2019/10/04(金) 07:31:02.74 ID:Rnyv5utD.net]
まずは2ch-Linux-Beginnersを読みましょう。
いろいろとまとめられているので(・∀・)イイ!!
www12.atwiki.jp/linux2ch/

読んでも解決しなかったら、質問を書きこむ前にここを読もう。
www12.atwiki.jp/linux2ch/?About
質問に対して答えてもらったら、お礼よりも、結果報告。

過去ログ検索
Google検索
https://www.google.com/search?hl=ja&as_q=検索語句&as_sitesearch=2ch.net%2Ftest%2Fread.cgi%2Flinux%2Fhttps://www.google.com/search?hl=ja&as_q=検索語句&as_sitesearch=5ch.net%2Ftest%2Fread.cgi%2Flinux%2F

※前スレ
くだらねえ質問はここに書き込め! Part 237
mao.5ch.net/test/read.cgi/linux/1563027196/

141 名前:login:Penguin mailto:sage [2019/10/24(木) 02:18:20.25 ID:4THVBbld.net]
vim -c "2,5sort | wq" input.txt
だとvimの中の行指定可能なsortコマンド実行して終了する

142 名前:login:Penguin [2019/10/24(木) 02:52:38.48 ID:hZV5Y9jm.net]
3DデスクトップってLinuxならどの銘柄でも出来ますか?
それとも特定の銘柄だけですか?
こう言う動作↓
https://youtu.be/558_Ns8aByY?t=7m48s

143 名前:login:Penguin mailto:sage [2019/10/24(木) 07:33:54.72 ID:htrbp4UL.net]
目覚めて気付いたけど、>>139だとsort対象の行しか出力されない。
他の(sortされていない)行も全部出力するなら…

# テストデータ
seq 9 | sort -r > filename

# 2行目から5行目だけsort
START=2
END=5
cat filename | head -n $(($START - 1))
cat filename | head -n $END | tail -n $(($END - $START + 1)) | sort
cat filename | tail -n +$(($END + 1))

# 3行目以降だけsort
START=3
cat filename | head -n +$(($START - 1))
cat filename | tail -n +$START | sort

…かな

144 名前:login:Penguin mailto:sage [2019/10/24(木) 07:36:26.07 ID:htrbp4UL.net]
×> cat filename | head -n +$(($START - 1))
 > cat filename | tail -n +$START | sort

○> cat filename | head -n $(($START - 1))
 > cat filename | tail -n +$START | sort

145 名前:login:Penguin mailto:sage [2019/10/24(木) 08:41:38.78 ID:aFdU4VfN.net]
>>138
sedって万能なんすね
sed -n "2,5p" foo.txt | sort
sed -n "3,\$p" foo.txt | sort

146 名前:login:Penguin mailto:sage [2019/10/24(木) 10:33:43.46 ID:y4UJfKg2.net]
Ruby なら、

# 末尾の改行を削除して、配列に読み込む
ary = File.readlines( "a.txt", chomp: true )

# 2 〜 5行目や、3行目以降をソートする
# 配列のインデックスは、0 から始まるので、1つずれる。-1 は最後の要素

puts ary[ 1..4 ].sort
puts ary[ 2..-1 ].sort

147 名前:login:Penguin [2019/10/24(木) 13:00:09.46 ID:vBl3XMCx.net]
質問です。

gnome-disksをraspbianで使っています。
rootユーザーなら、操作の前にパスワードを聞かれることはありません。
一般ユーザーでも同じようにしたいと思って、sudo gnome-disks をしたのですが、

(gnome-disks:1409): Gtk-WARNING **: 12:46:49.597: cannot open display:

というエラーとなりました。
なお、gksuという方法は廃止されてしまったようです。

一般ユーザーでもroot権限で特定のGUIアプリを動かす方法は何が最適でしょうか。

148 名前:login:Penguin mailto:sage [2019/10/24(木) 14:00:56.77 ID:vBl3XMCx.net]
>>146
自己解決しました。
xhost + を予め実行しておく必要がありました。

149 名前:login:Penguin mailto:sage [2019/10/24(木) 19:33:57.32 ID:SIvO56h2.net]
超初歩的な質問で申し訳ないのですが、wslを使ってubuntuでstartxfce4とコマンドした後にwarningがたくさん出てくるのですがこういうものなのでしょうか?

また xfce4が起動してbashの方でコマンドを打とうと思っても「$」が表示されておらず、コマンドが打てないのですが、どうしたら打てる状態にできるのでしょうか?



150 名前:login:Penguin mailto:sage [2019/10/24(木) 20:12:34.63 ID:JIRaBw0H.net]
&
そもそも新しい端末開けばいいだけの話では?

151 名前:login:Penguin mailto:sage [2019/10/25(金) 00:13:18.30 ID:RwV+js8P.net]
そもそも、WSL は、xfce みたいなGUI を使えるの?
漏れは、CUI だけで、Ubuntu 16.04 を使っているけど

ファイラーも、ranger というCUI を使っている

152 名前:login:Penguin mailto:sage [2019/10/25(金) 02:53:56.79 ID:PQuzrFkx.net]
>>150
使えるしオーディオ再生とかもできる
てか散々既出

153 名前:login:Penguin mailto:sage [2019/10/25(金) 05:05:19.72 ID:RwV+js8P.net]
Windows10, WSL, Ubuntu 16.04 で、
Ruby で、すべてのパッケージの更新を書いているけど、

WARNING: apt does not have a stable CLI interface. Use with caution in scripts.

と、Rubyから、apt コマンドを呼び出すのは良くないみたいなので、
aptを、apt-get に変えて作っていますが、

アップグレードできるパッケージを、一覧表示する、
apt list --upgradable
と同じ機能の、apt-get は有りませんか?

#!/usr/bin/ruby

# sudo のパスワードを自動入力する
puts `echo パスワード | sudo -S apt-get update`

# アップグレードできるパッケージを、一覧表示する
puts `apt list --upgradable`

puts `sudo apt-get upgrade -y`

154 名前:login:Penguin [2019/10/25(金) 09:30:26.11 ID:wjgZzngK.net]
現在、cd, ls とか1日でしょっちゅう使うコマンドは.bashrcでヒストリー除外設定してます。
それとは別に、備忘録として次回のログイン時にはヒストリー履歴に必要ないmanとかwho等の単発コマンドや、自作バッチ等をsed用のパターンファイルに収めてあります。
そのファイルを使ってsedで.bash_historyにかけて該当するコマンドを削除して、実行結果自体は正しいと確認できています。

で質問です。
この作業をログアウト時にしたいのですが、.bash_logoutや.logoutに記述しても、ヒストリーのキャッシュから.bash_historyに書き込まれるタイミングが後に来るようで、パターンファイルのコマンドがもどってきます。直前にhistory -wをしてもだめです。
最後のシステムがヒストリーのキャッシュを.bash_historyに吐き出した後に、sed実行できればいいのですが、どのファイルに記述すればいいのでしょうか?

155 名前:login:Penguin mailto:sage [2019/10/25(金) 09:54:17.89 ID:ZYt79x2d.net]
しらんけど、.bash_logoutとかで、端末切り離しても終了せずにバックグラウンドで動くスクリプト実行して
1秒後とかにヒストリ消すようにしたら動くんじゃね?しらんけど

156 名前:login:Penguin mailto:sage [2019/10/25(金) 10:19:45.97 ID:7I9s5J33.net]
Lubuntu 18.10 烏賊

他のLubuntuには、「ディスク」があるのですが、なぜか自分の烏賊には、hddをフォーマットしたり、領域を操作するためのアプリが見つかりません。

ダウンロードする方法を教えて下さい。

157 名前:login:Penguin mailto:sage [2019/10/25(金) 10:44:34.87 ID:DsOIalUM.net]
>>153
systemdのサービスファイル書いてExecStopで実行するとか?しらんけど

158 名前:login:Penguin [2019/10/25(金) 11:55:37.42 ID:h3N5NDxK.net]
>>153
ログインのときに、やればいいんじゃないの?

159 名前:login:Penguin [2019/10/25(金) 11:58:56.84 ID:h3N5NDxK.net]
>>141
ウインドウマネージャがパッケージにあれば、動くと思います
なければ、ソースからビルドすれば動くと思います



160 名前:login:Penguin [2019/10/25(金) 12:00:11.63 ID:fdkloRFW.net]
縦の列を出力するコマンドの結果をパイプを通して横にしたいのですが躓いてます。

例: ls -l hoge | grep -E 'jpg|bmp' | awk{print $9}' | sed 's/\n/ /'

これだと縦のリストままです。 改行をスペースにすればいいと思ったのですが、
標準出力ではだめなのですか?

161 名前:login:Penguin mailto:sage [2019/10/25(金) 12:00:59.99 ID:RwV+js8P.net]
systemd のログアウトとか、

逆に、ログアウト時に処理せず、ログイン時に処理するとか

162 名前:login:Penguin mailto:sage [2019/10/25(金) 12:03:05.91 ID:RwV+js8P.net]
確か、縦横変換は、xargs じゃなかった?

163 名前:login:Penguin mailto:sage [2019/10/25(金) 13:04:28.71 ID:M6r4WUQ0.net]
>>153
もしかしてと思って
exec dash
ってやってみたら書き込まれた。
ということは exec を使えばできる可能性が…
でも bash の man に明確にそう書かれてはいない気がする。

164 名前:login:Penguin mailto:sage [2019/10/25(金) 13:10:01.95 ID:pMh/yvQj.net]
$ seq 3 | xargs
1 2 3
xarrgsだけで使うとか盲点だった

165 名前:login:Penguin mailto:sage [2019/10/25(金) 13:42:09.89 ID:NnBWMM0A.net]
別にその程度なら、これでいいが
echo $(seq 3)

166 名前:login:Penguin [2019/10/25(金) 13:42:44.24 ID:ew4plpxi.net]
>>161
>>163

159です。おかげで解決しました
ありがとうございました

167 名前:login:Penguin [2019/10/25(金) 13:49:46.27 ID:ew4plpxi.net]
>>164
159です。 短いコマンド列ならパイプいらないんですね
ありがとう (≧∀≦)ノ♪

168 名前:login:Penguin mailto:sage [2019/10/25(金) 15:01:20.34 ID:b/c/D3hz.net]
>>153
history -wの後sedを呼んで、さらにhistory -cとhistory -rを呼ぶとかは?

169 名前:login:Penguin mailto:sage [2019/10/25(金) 20:22:42.08 ID:PcQV5FAs.net]
sudo cpで何もオプションをつけずに実行して、
Aさんのファイル hoge.txt を、Bさんのファイル hoge.txt で、上書きコピーした時、
hoge.txt の所有者とかパーミッションは、Aさんの時のままみたいなんだけど、
これってどこかに仕様ある?



170 名前:login:Penguin [2019/10/25(金) 21:41:54.75 ID:6kDTaNGH.net]
>>168
info cpの-pオプションのところに書いてある。
https://linuxjm.osdn.jp/info/GNU_coreutils/coreutils-ja_78.html
>このオプションを使わない場合、コピー先ファイルがすでに存在している場合は、 その許可属性は変更されない。

171 名前:login:Penguin mailto:sage [2019/10/25(金) 21:46:02.55 ID:EL0TBdFz.net]
>>169
ありがとう。これで安心できるw

172 名前:login:Penguin [2019/10/25(金) 21:51:40.62 ID:mq4pzYPG.net]
余計なことしないでデフォルトの挙動に慣れといた方がいいんじゃね

173 名前:168 = 170 mailto:sage [2019/10/25(金) 22:06:11.75 ID:EL0TBdFz.net]
俺のこと? なんか勘違いしてると思うけど、
例えば、 /etc以下のとあるファイルを相手に渡して
書き換えておいたから、これ cp して上書きしておいてって言って
相手が何も考えずに、sudo cp しちゃっても大丈夫だよねって話だよ

174 名前:login:Penguin [2019/10/25(金) 23:15:42.66 ID:ew4plpxi.net]
ID変わっちゃいましたが>>153です。

結局、>>157さん>>160さんのご指摘とおりログイン時に.bashrc内でsedを実行する事にしました。 結果も望んだ状態でした。

>>167
.bash_logout内で実行しましたが、なぜか再ログイン時には削除したはずのコマンドが蘇ってました。

>>154
>>156
>>162
権限の都合上、あまりシステムよりの終了タイミングで処理を噛ませらないので、今回は試せませんでした。

色々アドバイスしていただき、ありがとうございました

175 名前:login:Penguin mailto:sage [2019/10/26(土) 11:29:58.88 ID:aEAPGpq3.net]
Linuxとは直接関係ないかもしれ

176 名前:ワせんが質問です。
何の関係もないLinuxサーバ用PCとWindowsデスクトップ用PCがあります。
HDD2台をサーバ用PCでRAID1にして構築した後
何かの拍子にそのHDD1個をデスクトップ用PCに入れるとすると
ドライブはちゃんと認識されるのでしょうか。
ファイルシステムはext4で、デスクトップ用PCにはext4読み込みのためのソフトを入れることとします。
[]
[ここ壊れてます]

177 名前:login:Penguin mailto:sage [2019/10/26(土) 11:46:24.23 ID:oNLsi5fR.net]
何でRAID組んだのかで違うでしょ

178 名前:login:Penguin mailto:sage [2019/10/26(土) 11:49:41.67 ID:ZfJ5IMnc.net]
そこにHDDが2台あったから

179 名前:152 mailto:sage [2019/10/26(土) 12:06:45.41 ID:pXpNefp4.net]
>>152
自己レス

>アップグレードできるパッケージを、一覧表示する、
>apt list --upgradable
>と同じ機能の、apt-get は有りませんか?

apt-get のオプションにあった

-u, --show-upgraded
更新パッケージ表示 - 更新される全パッケージを一覧表示します。設定項目: APT::Get::Show-Upgraded

-V, --verbose-versions
更新・インストールするパッケージのバージョンをすべて表示します。設定項目: APT::Get::Show-Versions



180 名前:174 mailto:sage [2019/10/26(土) 13:35:21.28 ID:aEAPGpq3.net]
>>176
サーバPCのPOST画面から出せるRAIDユーティリティです
厳密にはソフトウェアRAIDだそうで、管理情報がHDD上に残るとか

もしかしてmdadmなら大丈夫なんでしょうか

181 名前:login:Penguin mailto:sage [2019/10/26(土) 13:51:18.58 ID:F14et2Hg.net]
ミラーならやってみりゃいいじゃん

182 名前:login:Penguin mailto:sage [2019/10/26(土) 19:30:00.71 ID:mJoLKa9d.net]
>>178
暗号化してなければ、RAID1ならハードウェアRAIDでもソフトウェアRAIDでも、他PCに接続すれば中身は見えるよ。

183 名前:login:Penguin mailto:sage [2019/10/26(土) 23:46:48.54 ID:IiUQELA0.net]
派生が大量にあるLinuxに対してBSDの派生が少ないのはなんでなんです?

184 名前:login:Penguin mailto:sage [2019/10/27(日) 00:06:29.57 ID:/drCSR+3.net]
ユーザーがいないからやろ

185 名前:login:Penguin mailto:sage [2019/10/27(日) 00:23:47.66 ID:nwZsKjXo.net]
Linuxは冷食弁当
BSDは手作り弁当
UNIXは二郎でいいか

186 名前:login:Penguin mailto:sage [2019/10/27(日) 01:40:42 ID:8NH89CAZ.net]
>>182
Linuxの場合は自分の好きなようにしたいからディストリを色々起こしたって感じだからな

187 名前:login:Penguin mailto:sage [2019/10/27(日) 05:25:58.94 ID:ZjFaYx5E.net]
食べ物で例えるなとあれほど…

188 名前:login:Penguin mailto:sage [2019/10/27(日) 06:37:41.89 ID:QrTJsh8Q.net]
>>181
ポリシーの違い

189 名前:login:Penguin mailto:sage [2019/10/27(日) 07:20:34.44 ID:0K1aGab+.net]
BSDの派生が少ないんじゃなく、Linuxの派生の多さが異常なんだよ



190 名前:login:Penguin [2019/10/27(日) 12:52:04.73 ID:V2uhvpIm.net]
すいません、
松田聖子のファイルが200以上あってファイル名が、
いちご畑でつかまえて.mp3
潮騒.mp3
電話でデート.mp3

なんで、行頭に三桁、あるいは四桁の連番を付けたいと思います。
001-いちご畑でつかまえて.mp3
002-潮騒.mp3
0213-電話でデート.mp3
調べたんですが、行頭に連番をつける方法が見つかりませんでした。
よろしくお願いします。

191 名前:login:Penguin mailto:sage [2019/10/27(日) 13:25:45.94 ID:dgTsOTGe.net]
>>188
rename 's/^/sprintf("%03d-", ++$::t)/e' *.mp3

renameコマンドはDebian系ならrenameパッケージに入ってるやつね

192 名前:login:Penguin [2019/10/27(日) 16:03:08.34 ID:V2uhvpIm.net]
>>189
遅くなりました。ありがとうございます。

200曲無事完了しました。手でやっていたらタイヘンだも〜〜〜

ありがとう。

193 名前:login:Penguin mailto:sage [2019/10/27(日) 18:17:28.51 ID:1EgYvHMw.net]
松田聖子が200以上か…

194 名前:login:Penguin mailto:sage [2019/10/27(日) 20:17:04.79 ID:vrbz31o7.net]
キャリア30年以上あれば余裕でその位はあるだろう

195 名前:login:Penguin mailto:sage [2019/10/27(日) 22:13:55.48 ID:8NH89CAZ.net]
>>191
俺は松田聖子は激しく上であんまり知らないが、5chには若い時から松田聖子が
好きってどおっさん世代は多いだろ。で、大ファンなら200以上持っていても不思議
ではない。

196 名前:login:Penguin mailto:sage [2019/10/28(月) 07:11:10.04 ID:DrC7/o+o.net]
松田聖子は、ユーミン(呉田軽穂)の名曲が多い

コード進行も、半音下がりのクリシェを多用したり、
米国で言えば、David Foster に匹敵する時代!

まあ、ユーミンは、女筒美京平と言われて、
林哲司は、日本のDavid Fosterと言われていたけど

日米英国も、MTV の影響か、80年代ポップスに名曲が多い

197 名前:login:Penguin [2019/10/28(月) 08:25:15.43 ID:HMUb8kSq.net]
エスケープをかましたsedの使い方で質問があります

$ echo -e "dog,\033[38;5;11m hoge\033[0m, cat"
dog, hoge, cat <=== hogeだけ黄色で表示

$ echo -e "dog, hoge, cat" | sed -e "s/hoge/foo/"
dog, foo, cat <=== 普通のsedの結果

この上記2つを組み合わせたいのですが
エスケープキャラが色コードに変換されず、hogeの前にfooが食い込でます
$ echo -e "dog, hoge, cat" | sed -e "s/hoge/\033[38;5;11mfoo\033[0m/"
dog, hoge33[38;5;11mfoohoge33[0m, cat <=== ぐちゃぐちゃ

この例でhogeから黄色のfooにsed変換するにはどうすればいいですか?

198 名前:login:Penguin mailto:sage [2019/10/28(月) 09:17:41.62 ID:lNAOad9p.net]
>>195
bashから実行するなら
echo -e 'dog, hoge, cat' | sed -e $'s/hoge/\033[38;5;11mfoo\033[0m/'

199 名前:login:Penguin mailto:sage [2019/10/28(月) 09:55:01.53 ID:XUE5MeKL.net]
役に立つかどうかわからないけど、参考にしてね。
$ echo "dog, hoge, cat" |
> sed -e 's/hoge/\\033[38\;5\;11mfoo \\033[0m/' |
> sed -e "s/^/'/" -e "s/$/'/" |
> xargs echo -e



200 名前:login:Penguin mailto:sage [2019/10/28(月) 10:16:17.82 ID:gaVasQIf.net]
色コードを素直にredやgreenで扱える便利道具ってないの?

201 名前:login:Penguin mailto:sage [2019/10/28(月) 11:50:49.14 ID:5E0lMxSX.net]
>>198
tput

ただし大抵の環境で入ってるはずだが、入ってない環境もある。
見やすいが冗長。外部コマンドなので遅い。

202 名前:login:Penguin [2019/10/28(月) 14:05:13.29 ID:HMUb8kSq.net]
>>196
「$」一文字ですごい。
この場合のクォーテーションで括られたパターンの外の$はどういう意味ですか?

>>197
一行づつ読んで、2度めのsedでパターンの前後に「'」を足してる事を理解しました。
これを参考にして、元の例のシングルクォーテーションをリテラルに変更して
  echo -e '''dog,\033[38;5;11m hoge\033[0m, cat'''
これで望んだ結果が出力されたました \(^o^)/

203 名前:login:Penguin [2019/10/28(月) 14:17:33.13 ID:HMUb8kSq.net]
>>197
>> 200 でまちがって中間のコマンド履歴をうってました m(_ _ )m
ただシングルクォーテーションが鍵なのがわかりました

204 名前:login:Penguin [2019/10/28(月) 14:31:46.32 ID:jxo+K6ql.net]
Linuxのほうは公式のディストリってものがないからだろうな

205 名前:197 mailto:sage [2019/10/28(月) 21:30:39.09 ID:k8dpn6a1.net]
>>200
>「$」一文字ですごい。
> この場合のクォーテーションで括られたパターンの外の$はどういう意味ですか?

洒落てますよね。私も、それでよかったのかと感心しました。
$'...' は、bash のクォートの一種です。man bash の「クォート (QUOTING)」を見てください。
この部分は、英語マニュアルの方がわかりやすいと思います。

206 名前:login:Penguin mailto:sage [2019/10/29(火) 12:35:22.88 ID:iAozzjoU.net]
>>196
>echo -e 'dog, hoge, cat' | sed -e $'s/hoge/\033[38;5;11mfoo\033[0m/'

\033 を、\e に代えても動く

echo -e 'dog, hoge, cat' | sed -e $'s/hoge/\e[38;5;11mfoo\e[0m/'

207 名前:login:Penguin mailto:sage [2019/10/29(火) 13:21:09.12 ID:VPiAGyFh.net]
echo -e 'dog, hoge, cat' | sed -e 's/hoge/^[[38;5;11mfoo^[[0m/'

ただし ^[ は ctrl+v の後に escキーで入力

208 名前:login:Penguin mailto:sage [2019/10/29(火) 18:17:48.56 ID:HNRQ6y5r.net]
sway使いはおらんのけ?

209 名前:login:Penguin mailto:sage [2019/10/29(火) 22:29:29.28 ID:pFWErwX/.net]
ターミナルで折り返し改行されたときに上矢印押したら上の行に行けるようにできたりしませんかね。下矢印で下。ずーっと横長の移動しなくちゃいけないから辛いです。
それでもって一番上の行で上を押せば前の履歴に行くような普通の操作を実現したいです。

今使ってる環境はgnomeターミナル+tmux +zsh



210 名前:login:Penguin mailto:sage [2019/10/30(水) 23:58:54.89 ID:ukMyq2L7.net]
xargsでaliasを使う方法ってないんだな
自作コマンドを使う方法はあるのに

211 名前:login:Penguin [2019/10/31(木) 00:50:56.71 ID:reP6OUR1.net]
bashの配列で質問です。
空白で区切られた3つの要素を配列に代入
declare -a array=( "A B C" "C D E" "F G H" );
for ((i = 0; i < ${#array[@]}; i++)) { echo "array[$i] = ${array[i]}" }

結果は予想通り
array[0] = A B C
array[1] = D E F
array[2] = G H I

今度は改行で区切られた3つの要素の内容を、awkで逆順した結果に「"」とつけて配列に代入。
declare -a array=( $(echo -e "A B C\nD E F\nG H I" | awk '{printf "\"%s %s %s\"\n", $3, $2, $1}') );
for ((i = 0; i < ${#array[@]}; i++)) { echo "array[$i] = ${array[i]}" }

しかし、実際はクォーテーションの機能も無視され、空白でバラバラに区切られ配列に代入されてします。
array[0] = "C
array[1] = B
array[2] = A"
… 略 …
array[7] = H
array[8] = G"

配列に代入しなければ期待通りの結果が出力されます。この結果を望んでいます。
echo -e "A B C\nD E F\nG H I" | awk '{printf "\"%s %s %s\"\n", $3, $2, $1}'
"C B A"
"F E D"
"I H G"

どうすれば配列の要素に上記の結果を代入することができますか?

212 名前:login:Penguin mailto:sage [2019/10/31(木) 00:56:01.59 ID:hpOp+iT/.net]
>>209
配列なんか使うな。それはbashの拡張だ。
POSIXシェルには配列などというものはない。

外部コマンドの呼び出しなんだからそれはbashスクリプトの外の話だ
bash専用機能である配列は使えない

213 名前:login:Penguin mailto:sage [2019/10/31(木) 01:02:37.89 ID:hpOp+iT/.net]
そもそもシェルというものをわかっていない。
一般的な言語の関数は、引数で情報を与え、戻り値で情報をもらうものだが
シェルというのは情報の入出力を標準入出力で行うものだ。

そしてシェルでは標準入出力の一行が一データ、複数のデータは複数の行数で表すのが基本だ
引数はこういうやり方もあるよという別解だと考えたほうがいい

echo -e "A B C\nD E F\nG H I" | awk '{printf "\"%s %s %s\"\n", $3, $2, $1}'
↑つまりはこれが正しいということだ。

だからお前がやるべきことはそのbash依存した配列を
複数行のデータに変換することだ

214 名前:login:Penguin mailto:sage [2019/10/31(木) 01:07:04.68 ID:hpOp+iT/.net]
>>209
話の前に、echo -e はやめとけ。それはbash依存だ。
エスケープシーケンスを使うならprintfを使ったほうがいい

簡単になおせる
printf '%s\n' "A B C" "D E F" "G H I" | awk '{printf "\"%s %s %s\"\n", $3, $2, $1}'

そしてbashの配列の代わりに位置パラメータを使えばいい
set -- "A B C" "D E F" "G H I"
printf '%s\n' "$@" | awk '{printf "\"%s %s %s\"\n", $3, $2, $1}'

215 名前:login:Penguin mailto:sage [2019/10/31(木) 01:10:51.96 ID:hpOp+iT/.net]
どうしてもbashの配列を使いたいというのならこうだ。

declare -a array=( "A B C" "C D E" "F G H" )
printf '%s\n' "${array[@]}" | awk '{printf "\"%s %s %s\"\n", $3, $2, $1}'

考え方は位置パラメータ $@ を使うのと同じだ。
$@ の代わりに ${array[@]} になっただけだ。

言い換えると位置パラメータを複数使えるようになったのがbashの配列だ

216 名前:login:Penguin mailto:sage [2019/10/31(木) 01:11:21.35 ID:CucVKUrX.net]
>>209
readarray

217 名前:login:Penguin mailto:sage [2019/10/31(木) 01:14:52.04 ID:niz424am.net]
>>209
readarrayはパイプにするとサブシェルになってしまって動かないから例も置いとく
readarray -t array < <(echo -e "A B C\nD E F\nG H I" | awk '{printf "%s %s %s\n", $3, $2, $1}')

218 名前:login:Penguin mailto:sage [2019/10/31(木) 01:19:51.44 ID:hpOp+iT/.net]
readarrayもbashの拡張だ。そういうものは使わない
シェルスクリプトはパイプで処理をつなげていくものだ

declare -a array=( "A B C" "C D E" "F G H" )
printf '%s\n' "${array[@]}" | awk '{printf "\"%s %s %s\"\n", $3, $2, $1}' | while read -r line; do
 echo "$line" # $lineの加工処理とかなにか
done

こうすることで、出力とawkの加工と自前のreadの処理が並列で動く
readarrayなどを使ってしまったら、一旦bashの配列に入れてしまうから
並列で動かなくなる。つまり遅くなる。

| while read はパイプでサブシェルになってしまって動かないから例も置いとく

printf '%s\n' "${array[@]}" | awk '{printf "\"%s %s %s\"\n", $3, $2, $1}' | {
 i=0
 while read -r line; do
  i=$((i + 1))
  echo "$line" # $lineの加工処理とかなにか
 done
 echo "合計行数 $i"
}

219 名前:login:Penguin mailto:sage [2019/10/31(木) 01:20:57.62 ID:hpOp+iT/.net]
>>216のように書くよりも関数にしたほうが分かりやすいがな

func() {
 i=0
 while read -r line; do
  i=$((i + 1))
  echo "$line" # $lineの加工処理とかなにか
 done
 echo "合計行数 $i"
}

set -- "A B C" "D E F" "G H I"
printf '%s\n' "$@" | awk '{printf "\"%s %s %s\"\n", $3, $2, $1}' | func



220 名前:login:Penguin mailto:sage [2019/10/31(木) 01:29:26.44 ID:8CGDUgWT.net]
>>209
古いbashでreadarrayがなければ
eval 'array=('"$(echo -e "A B C
\nD E F\nG H I" | awk '{printf "\"%s %s %s\" ", $3, $2, $1}'

221 名前:login:Penguin mailto:sage [2019/10/31(木) 01:38:06.90 ID:8ldiWh95.net]
>>218のbash依存なし版はこっち。当たり前だけどちゃんと動くでw

eval 'set -- '"$(printf '%s\n' "A B C" "D E F" "G H I" | awk '{printf "\"%s %s %s\" ", $3, $2, $1}')"
printf '%s\n' "$@"

222 名前:login:Penguin [2019/10/31(木) 01:40:37.18 ID:9QFNPqD9.net]
Windowsの感覚が抜けず、シェル上でディレクトリ名やファイル名を大文字小文字を区別せず打ってしまいます
直したいとは思うのですが、差し当たり大文字小文字が間違えていても修正や補完をしてくれるように出来るとありがたいです
何かそういう設定やツール等があれば教えてください

223 名前:login:Penguin mailto:sage [2019/10/31(木) 01:43:22.34 ID:8ldiWh95.net]
あとLinuxならrev使ったほうが簡単だな

set -- "A B C" "D E F" "G H I"
printf '%s\n' "$@" | rev

224 名前:login:Penguin mailto:sage [2019/10/31(木) 01:53:30.01 ID:8ldiWh95.net]
>>219でもいいけど、正直evalを使うとエスケープやダブルクォートが
面倒になったりするからこっちのほうがいいかもな。(↓awkのダブルクォートを消した)

printf '%s\n' "A B C" "D E F" "G H I" | awk '{printf "%s %s %s\n", $3, $2, $1}' | {
set --
while read -r line; do
set -- "$@" "$line"
done
printf '%s\n' "$@"
}

bashで配列に入れたければ頑張れw
まあ、位置パラメータ(配列)に入れるよりも、その場で処理したほうが
シェルスクリプトらしくて速くなるんだが


おまけ、さらに短く
printf '%s\n' "A B C" "D E F" "G H I" | awk '{print $3, $2, $1}' | {

おまけ、さらに短く
printf '%s\n' "A B C" "D E F" "G H I" | rev | {

225 名前:login:Penguin [2019/10/31(木) 03:19:09.95 ID:reP6OUR1.net]
>>213
データを受けた後の一度ちがう処理が入って
その上そのあとプロセス分岐するので、
一度フォーマット整形後に配列に変換して
あとで個別にアクセスしたいと思っていました。
確かにこの方法だと配列に期待した形で代入されました。

>>214 >>215
readarrayは知りまでせんでした。勉強します。

>>218 >>219
これは勉強になります

>>222
> bashで配列に入れたければ頑張れw
がんばりますw
色々な表記方法でありがとうございます。
勉強になります。

みなさまありがとうございました (^人^)感謝♪

226 名前:login:Penguin mailto:sage [2019/10/31(木) 09:58:32.70 ID:HOpY20qN.net]
>>220
bashは.inputrcにset completion-ignore-case Onでできるらしい
あるいは.bashrcにbind 'set completion-ignore-case on'
.inputrcだとreadline全体に影響するから後者の方がいいかも
https://askubuntu.com/questions/87061/can-i-make-tab-auto-completion-case-insensitive-in-bash

zshはqiitaにやり方が描いてあった
https://qiita.com/watertight/items/2454f3e9e43ef647eb6b

227 名前:login:Penguin mailto:sage [2019/10/31(木) 10:13:09.17 ID:w4pP63KT.net]
>>220
shopt -s cdspell dirspell
cdspellはcdの引数の誤字脱字が1文字なら修正する
cd /Va
cd /Var
cd /vaa
cd /ar
こんなのね

dirspellはdirの誤字脱字が1文字ならタブ補完時に修正する
 ls -l /va/logs/
ここでタブを押すとls -l /var/log/になる

あくまで一文字だけだからあまり宛にはできないけどね
shoptにはcdなしで移動できるautocdもあるからいくつか設定しとくと便利
基本は小文字で打って後はタブ補完で勝手に入力させればいいよ

228 名前:login:Penguin mailto:sage [2019/10/31(Thu) 13:43:01 ID:ljvnXlxv.net]
すいません質問です
SparkyLinux 5.9 Xfce 64 bit に Software Boutique というパッケージマネージャを
インストールするため 
https://snapcraft.io/install/software-boutique/debian
を参考にインストールしてみた
( ターミナルで"software-boutique 0+git.9cc961a
from Martin Wimpress (flexiondotorg) installed"まで表示されました )
のですが
どうやったら Software Boutique を起動できるのでしょうか
メニューでそれらしきところを探してみたのですが見当たりません
よろしくお願いします

229 名前:login:Penguin mailto:sage [2019/10/31(木) 20:19:09.63 ID:HYxFHwOd.net]
別にbash依存でよくない?
posix互換厳守にしようとすると面倒
将来bashが無くなっちゃうことってないだろ、無くなったらその時はその時だし



230 名前:login:Penguin mailto:sage [2019/11/01(金) 03:02:42.50 ID:FRerU7gf.net]
ノートPCを起動するとGNU GrubのBASH画面で止まるようになりました
恐らくexitと入力すれば先へ進めるのですが、あいにくキーボードが半壊していて入力できません
USBのキーボードは読み込んでくれず、BIOSに行くことも何故かできなくなりました
一応「ryodfghkl;'zxcvbnm,.」は入力することができますが何か突破口はありますか?

231 名前:login:Penguin mailto:sage [2019/11/01(金) 03:26:49.91 ID:xK4Ryk/p.net]
USBメモリブートやUSBCDブートもやりましたがやはり最初から認識しないようで駄目でした
PS/2キーボードは本体も刺す所もないです

232 名前:login:Penguin mailto:sage [2019/11/01(金) 03:27:39.73 ID:R2TKQ4dq.net]
>>227
将来世の中からbashが消えて無くなることはないが、
bashが使われてない環境ってのは存在するよ。

bashを使わなければいけないという特別な理由があるならいいけど、
必要ないのに依存させる意味がない

233 名前:login:Penguin mailto:sage [2019/11/01(金) 03:53:46.79 ID:+wZq5vgs.net]
自分のプログラムが巡り巡ってbashのない環境で動かすことになる可能性があるかどうかってことだけだな
結論としては不要
必要になったらまたその時考えればいい

234 名前:login:Penguin mailto:sage [2019/11/01(金) 05:33:45.83 ID:WI3r7Akd.net]
POSIX原理主義者はシェルスクリプトスレが引き取ったはずだし迷子かな

235 名前:login:Penguin mailto:sage [2019/11/01(金) 13:09:00.41 ID:BMKjWeTQ.net]
POSIX原理主義者はどこにでもいる

236 名前:228 mailto:sage [2019/11/01(金) 16:20:27.36 ID:oYdI1LQt.net]
無事BIOS起動して自己解決しました

237 名前:login:Penguin mailto:sage [2019/11/01(金) 16:27:48.46 ID:qfES3rdP.net]
>>235
良かったな。

238 名前:login:Penguin mailto:sage [2019/11/01(金) 19:24:40.57 ID:CYJonS8S.net]
メールのspfって

メールサーバA グローバルIP: aaa.aaa.aaa.aaa
からリレーされて
メールサーバB グローバルIP: bbb.bbb.bbb.bbb
から各ドメインに配送する場合、

spfにはbbb.bb.bbb.bbbだけ登録しても有効?
Recievedヘッダに入っていれば、最終の配送サーバのipアドレスだけ登録しても良いの?

239 名前:login:Penguin mailto:sage [2019/11/02(土) 14:11:37.25 ID:G/Y6LUFG.net]
ちょっとした疑問ですが、

よく、YouTube で、セミナー動画を見るのですが、
長いコマンドをコピペするのに、時間が掛かる人がいるのですが、

使うコマンドを、あらかじめヒストリーに登録しておけないのですか?



240 名前:login:Penguin mailto:sage [2019/11/02(土) 14:16:26.03 ID:wcogQYm2.net]
そういうアホの動画は見る必要ないですよ

241 名前:login:Penguin mailto:sage [2019/11/02(土) 15:06:19.73 ID:WQHwUzU+.net]
カーネルの4.15.XX をインストールしないようにするには
どうすれば良いですか?
カーネルは5.0.xxを使用してるんで・・・






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<297KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef