探検


OS XをUnixとして使ってる人の為のスレ 18 [無断転載禁止]©2ch.net

2016/05/06(金) 04:16:59.70ID:Kkeqv6zz0
OS X を Unix として使ってる人の為のスレです。

■関連スレ
Fink 使ってるの洩れだけなのかっ!?【rev.2】
http://potato.2ch.net/test/read.cgi/mac/1166780804/
MacPorts でワクワク UNIX ライフ Part 3
http://potato.2ch.net/test/read.cgi/mac/1315401888/
Homebrew でゾクゾク UNIX ライフ2
http://potato.2ch.net/test/read.cgi/mac/1309843497/
AppleScript アップルスクリプト 質問、発表 6
http://potato.2ch.net/test/read.cgi/mac/1387630245/
【中の人】Automator【小人】3人目
http://potato.2ch.net/test/read.cgi/mac/1416219152/
【タマニハ】MacにLinux入れようよ!その4【チガウノ】
http://potato.2ch.net/test/read.cgi/mac/1277458655/
Mac de Emacs総合スレ v7
http://potato.2ch.net/test/read.cgi/mac/1328699139/
Mac Vim 再び
http://potato.2ch.net/test/read.cgi/mac/1133534694/
Macでプログラミング{11}
http://potato.2ch.net/test/read.cgi/mac/1414566499/

■前スレ
Mac OS XをUnixとして使ってる人の為のスレ 17
http://potato.2ch.net/test/read.cgi/mac/1383436068/
2017/06/07(水) 22:54:00.22ID:Ryp3oXjn0
ああ、そういえばMac向けのフルキーボードではInsの位置にFnがあってInsどこいったねんだったりした
http://d.hatena.ne.jp/itohiroki/20101016/1287210720
これか?

なんか面倒なので、それらも好きなキーにその送信すべき値を設定に追加でいいんじゃね
2017/06/07(水) 23:43:04.48ID:cKJW2rxD0
>>149
>>148
このOption 2の設定をしないとctrlキー+ファンクションキーのショートカットはどれも動きませんでした。

>>150
>>151
INSはインサートキーなんですね。それ以外の2つが謎です。ベージアップ、ダウンですかね?
まぁ、今まで使ったこと無いからきにする必要無いかもです。
2017/06/08(木) 02:00:38.41ID:Jt1ydUj/0
>>152
ページアップとページダウンだろね。Command+Control+↑とCommand+Control+↓にでもしとけばいいんじゃね

ショートカットというか機能キー/修飾キー+文字キー機能キーというかは、
1) システムレベル(Misson Controlとか)でショートカットキーとして設定されていたら、そこで使われアプリ(Terminal.app)までは来ない
2) アプリでメニューなどのショートカットキーと設定されていたら、そのメニューコマンドの実行とされる
3) Terminalの環境設定のキーボードで設定されていたら、そこで設定された文字列を打ったのと同等として文字列を送信する
4) 実行すべきコマンドが無いとビープ音が出る
って、とこかな

かな。最初のCommand+Control+↑とかも、Command+↑がTerminalでメニューコマンドのショートカットとして使われているからであって、それを外せばCommand+↑をPage Upにできるだろうね(Command+↑がPage Upらしいけど、Appleの代替キー定義では。ちゃうやんw)
2017/06/08(木) 02:16:04.39ID:60cw9cXm0
>>152
ちょこっとググってみたところ、PPAGE は Previous Page、NPage は Next Page のような気がする。
2017/06/08(木) 03:57:45.01ID:Jt1ydUj/0
PPAGE/NPAGEの名前付けはその意味でだろうね。

{ KEYC_HOME, "¥033[1;_H" },
{ KEYC_END, "¥033[1;_F" },
{ KEYC_PPAGE, "¥033[5;_~" },
{ KEYC_NPAGE, "¥033[6;_~" },
{ KEYC_IC, "¥033[2;_~" },
{ KEYC_DC, "¥033[3;_~" },

から、フルキーボードのカーソルキーの上の6キーのうちのって思うけど。ICはInsert Character/DCはDelete Characterかな
だいたいキーボードの表記はページアップ/ページダウンだね。Appleの新フルキーボードでも。英語(ASCII)は。日本語(JIS)は右Option/Controlといいドイヒーだなw

>>153
2と3の間に、「制御コードキー(Control-cとか)だったら制御コードを送信」が入っているな。まあ、いいかだったが、ついでなので追加
2017/06/09(金) 13:42:20.07ID:96X69O2n0
どうもありがとうございました。

特定のアプリ(iTerm、ターミナル)の時だけ、ファンクションキーをfnキーを押さなくても使えるようにしする事はBTTで出来ますか?
それらのアプリ以外ではミッションコントロールや輝度や音量をそのまま使いたいです。
2017/06/09(金) 17:55:42.78ID:pDeRA6k70
Fnはちょっと特殊すぎるキーだからBTTでは無理じゃないかなあ
Fn使わない&Fnの代わりにOption+Shift(Option+Shiftは他の修飾キーでもいい。単に普通使わないってだけ)でならBTTでもできるけど

Sierraにまだ未対応だけどKarabinerならアプリケーション毎にまたFnも認識制御できるようなので可能だろうなあ。Karabiner Elements や他のそゆのは知らないので他の人が知っていれば、どうか
2017/06/09(金) 18:31:16.94ID:GKnoypr00
どうもありがとうございます。
ファンクションキーの奥に置ける薄型でメディアコントロールキーとして使えるような入力デバイスをググってみたんですけど既製品としてもなかったです。
2017/06/14(水) 20:03:04.17ID:c19boebs0
byobu(tmux)でVimの中の複数行をコピーすると、行番号までコピーされてしまいます。
行番号はコピーしないような設定はありますか?
2017/06/14(水) 20:09:51.41ID:6Y0O9Cgo0
viで行番号を非表示にサクっと切り替える&終わったらサクっと戻す

また、お前かw
2017/06/14(水) 20:29:14.57ID:c19boebs0
なるほど!
ありがとうございました。
またわたしです汗
2017/06/15(木) 00:02:07.39ID:2QpSVMl30
荒んだ心が和んだわ
2017/06/26(月) 02:01:46.95ID:r7Rp09DP0
Linuxにログインして作業してる時はbashとかzshとかfishのどれであっても日本語のコンソールのメッセージがでますが、Macだと英語のメッセージしか出ません。
どうやったらMacでも日本語にできますか?
2017/06/26(月) 02:22:41.98ID:7b35Z+nU0
>>163
いちばん簡単なのは、brewでbash入れたら確かそうなる
2017/06/26(月) 02:41:35.03ID:r7Rp09DP0
zshやfishはhomebrewで入れても英語のままでした外国人これは日本語化はむりですか?
2017/06/26(月) 07:06:37.71ID:7z2xp8pL0
macに日本語を入れるより
おまえの頭に英語を入れるほうが楽
2017/06/26(月) 18:14:13.39ID:z+q4Sp2w0
>>163
>どれであっても日本語のコンソールのメッセージがでます
ダウト!

> どうやったらMacでも日本語にできますか
$ gls --help |head
使用法: gls [オプション]... [ファイル]...
List information about the FILEs (the current directory by default).
Sort entries alphabetically if none of -cftuvSUX nor --sort is specified.

Mandatory arguments to long options are mandatory for short options too.
-a, --all . で始まる要素を無視しない
-A, --almost-all . および .. を一覧表示しない
--author -l と合わせて使用した時、各ファイルの作成者を表示する
-b, --escape 表示不可能な文字の場合に C 形式のエスケープ文字を表示する
--block-size=SIZE scale sizes by SIZE before printing them; e.g.,

日本語がでるなぁ。
2017/07/29(土) 02:31:54.06ID:v6HL9X/50
LANGとLC_MESSAGESでしょ
Linuxと違って標準のコマンド群はほとんどローカライズされてないけど
2017/07/29(土) 11:24:59.17ID:AvWr9Nya0
>>162
そんなことくらい刑事w
2017/07/29(土) 11:49:54.09ID:wlFE8mVs0
個人的にはコマンドラインが日本語だと違和感あるし
mac はちょうどいい
2017/07/30(日) 11:33:05.97ID:uUwiSCE30
ディレクトリのことでちょっと質問お願いします。

Mac上ではディレクトリのタイムスタンプはそのディレクトリ内にある最新のファイルのタイムスタンプに同期している(みたい)のですが、SFTPで接続しているLinuxサーバーの方はそのディレクトリの作成日からずっと変わらないです。

Macのような方式(?)の方がファイルの更新状況を確認するときに便利なのですが、LinuxのディレクトリのタイムスタンプをMacみたいにする方法はないですか?
2017/07/30(日) 12:24:21.19ID:OnenvuuM0
macOSでも、内容物のタイムスタンプが変わっただけではディレクトリのタイムスタンプは変わらないようだけど。既に存在するファイルをtouchしても変わらない
Linuxでも中のファイル/ディレクトリの削除・追加・名称変更で構成が変わる(inodeの変更?)とタイムスタンプは更新されるな(名称変更は名称変更されたファイル/ディレクトリそのもののタイムスタンプは更新されない)

言うようにmacOSがというように見えるのは、ファイルセーブで上書きではなく別に保存して既存とチェーンジなのがかなあ?そういうAPIがあり、アプリがそれを使ってるなら&OS内でもそれを使ってるとかかな?(チェーンジは確かinodeを弄るだけだから高速&安全だったような)
2017/07/30(日) 14:30:59.46ID:uUwiSCE30
ファインダーとターミナルじゃ違うみたいです
2017/07/30(日) 15:12:33.00ID:OnenvuuM0
何を言っているのかわからん
Terminalでtouchして、Finderで見てるんだけど。Linuxも(afpマウントして)

何が違うのかちゃんと自分で確認してからだな
2017/07/30(日) 15:15:35.22ID:OnenvuuM0
(隠れてナニカが頻繁に更新されている)Library見たって、
>Mac上ではディレクトリのタイムスタンプはそのディレクトリ内にある最新のファイルのタイムスタンプに同期している
わけではないってわかるだろう。そのように見えるのもあるが、そうでないのもあるってことで
2017/07/30(日) 15:55:09.73ID:suWTSSSM0
今、外にいるから確認できないけど、
あれかな、
いつも
〜/サイト/
にいて、そこから下位ディレクトリのファイルをVimで編集してるから、なんかVimがやってるのかな?
帰ってから確かめるね。
でも、その下位のディレクトリのタイムスタンプが常にファイルの更新日時になってるのは確かなんだよね
2017/07/30(日) 17:10:02.05ID:OnenvuuM0
vimは編集中に同じとこに、作業ファイル作るけど。.隠しのswpファイル
ファイルが増えたり消えたりしてるんだから、そりゃ変わるだろ
2017/07/30(日) 17:17:01.93ID:OnenvuuM0
単なる勘違いでmacOSもディレクトリのタイムスタンプの更新は(ほぼ)同じだろう
てか>>176なんて、>>171の趣旨と関係ない、てか、望みの動作だろうが、何言い出してんだかだぞw

ちゃんと、何が違うのかちゃんと自分で確認してからだな
そのvimだのsftpだのはmacOSでもできるんだから、LinuxからmacOSにsftpでもいろいろやれよっw
179名称未設定
垢版 |
2017/08/02(水) 08:42:19.11ID:Chhjg3iU0
Xcodeでオープンしたファイル・フォルダとかドラッグアンドドロップされたファイル・フォルダのファイルに対してユニックスコマンドを実行するアプリってどうやって作ったらいいの?
180名称未設定
垢版 |
2017/08/02(水) 08:42:59.52ID:Chhjg3iU0
ユニックスコマンドは標準のものじゃないからアプリ内に内蔵したい
2017/08/02(水) 12:47:55.00ID:dCF4/iTm0
このスレの話題じゃないけど
systemでもpopenでもNSTaskでも使えば
182名称未設定
垢版 |
2017/08/03(木) 08:06:07.26ID:ErbX30ZK0
>>179
一番楽なのはAppleScript

tell application "Xcode"
tell front document
do shell script "touch " & (quoted form of (path as string))
end tell
end tell
2017/08/03(木) 17:12:21.56ID:E8kOLU9b0
エンコ詰めてもらおか
184名称未設定
垢版 |
2017/08/03(木) 20:54:40.14ID:07QK8OI30
>>182
thank you!
2017/08/21(月) 21:52:12.56ID:uVZxJtEN0
https://github.com/tmux-plugins/tmux-prefix-highlight
tmuxのステイタスラインにprefixを押したときとコピーモードに入ったときにそれを表示してくれるスクリプトです。

ステイタスラインの一番左端に置きたいんですが、prefixを押したときやコピーモードに入ったときのみ表示されるので、それらが表示されるとそれ以降の右側の項目が右にずれてしまってちょっと気持ちが悪いです。

prefixを押していない時とprefixを押したときの幅をそろえるには
https://github.com/tmux-plugins/tmux-prefix-highlight/blob/master/prefix_highlight.tmux
ここのどこを書き換えたら良いでしょうか?

prefixを押していない時は例えばmac OSのメニューバーの様に「りんごアイコン」を表示させたりしたいです。 👀
Rock54: Caution(BBR-MD5:0be15ced7fbdb9fdb4d0ce1929c1b82f)
2017/09/06(水) 21:34:01.77ID:EuwZIi8p0
sshについての質問です

ローカルにある別のMacやLinuxへのssh接続ですが、ipアドレスを指定した場合は一瞬で繋がるんですが、マシン名.local を指定した場合、オプションで 「-4」を付けないと繋がるまで数分かかってしまいます
接続時にIPv4を指定しなくともすぐに繋がるようにするにはどうしたらいいでしょうか?

とりあえず、手元のMacの~/.ssh/configで
Host *
AddressFamily inet
と指定することにしました

接続先のマシンの 「/etc/ssh/sshd_config」を
AddressFamily inet
UseDNS=no
この二つを変更したんですが、一向に改善しません

また、~/.ssh/configで「Host *」「AddressFamily inet」と指定しても、鍵認証でKryptoniteを使うと特定の接続先のMacへのみ時間がかかってしまいます。
~/.ssh/configでKryptonite関連をコメントアウトするとすぐに繋がります。
2017/09/06(水) 22:09:13.68ID:VSu1pLKj0
alias ssh="/usr/bin/ssh -4"
を、bashに定義しとくのが簡単&確実じゃないの
2017/09/06(水) 22:16:32.90ID:VSu1pLKj0
とりあえず、手元のMacの~/.ssh/configで
Host *
AddressFamily inet6
と指定したら、繋がらない(相手側のIPv6は殺してあるので)から設定は効いているんじゃないかなあ
2017/09/06(水) 22:49:05.78ID:EuwZIi8p0
>>187
ほげほげ.localへの接続の際、-4を指定しないと時間がかかってしまうのは通常の動作なんでしょうか?
もしそうなんであれば、configやエイリアスでの対処であとは気にしないことにするんですが。
2017/09/06(水) 22:57:35.96ID:VSu1pLKj0
時間がかかるってどの程度かわからんし。んな気になる時間がかかることはないな。インターネット越しでも複数のホストへの接続してるけど

なんか知らんが、一番下のが原因じゃないの?わざわざ書いてたり&原因それかよっtぽい書き方で
Kryptoniteって知らんかったが、そりゃってのだし、対象のホストでなくてもなんか試行してるとか
2017/09/06(水) 23:03:40.63ID:VSu1pLKj0
すまん「数分」ってあったな。すまん。そりゃないな
localだから同一セグメント内でのBonjourで名前解決か?なんかしくってるのもありそうだな。名前解決やIPv6接続周りで。IPv6有効だったらIPv6で先にとかありそう
2017/09/06(水) 23:06:57.53ID:VSu1pLKj0
ああ、ちなみに、
localへの接続の際、-4を指定しないと時間がかかってしまうのは通常の動作
ではないな。家でも出先でも。数分とかありえん
2017/09/07(木) 00:25:17.13ID:IAFVAAVn0
/etc/hosts に登録しておいたらあかんの?
2017/09/09(土) 21:34:16.45ID:ld4uLyPF0
とりあえず-vvv付けて観察したら?
2017/10/09(月) 01:44:43.49ID:UvE1lyho0
GPTな、NTFSのパーティションが二つある外付けディスクで片方をJHFS+にフォーマットしたいん
だけど、エラーになってしまう。

具体的には、diskuitl で eraseVolume すると "Error: -5344: MediaKit reports not enough space
on device for requested operation" と。GUIの方でも同様。

なんでしょうこれ。既存のパーティションをフォーマットするだけのはずだが。
一旦Windowsでパーティションを触ってるのでなんか非互換になってるとか?
OS X上で最初からやらんといかんのかな。
2017/10/09(月) 12:45:15.13ID:hzACrPAS0
$ diskutil list
/dev/disk0 (internal, physical):
#: TYPE NAME SIZE IDENTIFIER
0: GUID_partition_scheme *3.0 TB disk0
1: EFI EFI 209.7 MB disk0s1
...
っていう(1のEFI)のが必要らしいけど、存在しないとか?
2017/10/09(月) 12:55:05.78ID:hzACrPAS0
なんかあるな程度にしか気にしたことなかったが、使ってないらしいやんけっw
使ってないのにdiskutilはそれがありきでエラーとか??んー、まあ、らしいけどw
2017/10/09(月) 13:00:23.72ID:hzACrPAS0
ああ、Windowsだとこれが100Mらしい。存在していても209.7 MBでなかったりかな
2018/02/09(金) 01:16:38.10ID:DJQSVNnB0
☆ 私たち日本人の、日本国憲法を改正しましょう。現在、
衆議員と参議院の両院で、改憲議員が3分の2を超えております。
『憲法改正国民投票法』、でググってみてください。国会の発議は
すでに可能です。平和は勝ち取るものです。お願い致します。☆☆
200名称未設定
垢版 |
2018/03/18(日) 01:15:07.56ID:CfWB8Fg40
NHKラジオニュースを任意のタイミングで聴ければと思うんですが、コマンドラインやSiri、LaunchBarからの操作で聴くにはどんな方法がありますか?
たとえば、Siriにニュース流してと言ったり、LaunchBarにニュースと打ち込めば、ラジオニュースの最新分が流れ、最後まで流れると再生アプリが自動で終了するって感じになればと思っています。

http://www.nhk.or.jp/radionews/
2018/03/18(日) 02:25:53.63ID:QjK0VXEM0
Unixと全く関係なさげ。「コマンドラインや」ってあるけどそれだけで全く触れてないし
それに全くなにを聞きたい/やりたい/自分でどこまでできるのかがわからなさすぎ
ラジオニュース再生するアプリはどうすんの?あるの?ポッドキャストをiTunesやPodcast用アプリでなの??なんか一か十まで聞きたそうにしか見えないなあ
2018/03/18(日) 02:29:54.74ID:QjK0VXEM0
SiriやLaunchBarでは、NHKニュース再生アプリのエイリアスを「NHKニュース」という名前で作れば出てくるんじゃないのとは思うけど。「NHKニュース」だったら他にも引っかかるかもしれんけど
2018/03/18(日) 02:40:59.11ID:2PUA6yhh0
>>200
スクレイピングして
mp3ファイルをダウンロードして
afplayで再生
2018/03/18(日) 08:11:17.51ID:yZKOvL0G0
そのためのコマンドラインを教えてください
2018/03/18(日) 10:08:47.44ID:+jEhNr0b0
愉快犯の煽りは要らんねん
206名称未設定
垢版 |
2018/03/18(日) 10:38:34.93ID:CfWB8Fg40
>>203
>>203
afplayでググりました!

curl -s http://www.nhk.or.jp/r-news/ondemand/mp3/20180318060003_13210_1_1_2.mp3 > /tmp/nhk.mp3 && afplay /tmp/nhk.mp3 && rm -rf /tmp/nhk.mp3

とりあえずこんな感じで再生出来る事が分かったんですが、途中で止めるとtmpファイルが残ったままになってしまうので、ダウンロードじゃなくストリーミングで再生する事って出来ますか?

あと、Siriで呼び出して直接コマンドやシェルスクリプトを実行する事って無理でしょうか?
2018/03/18(日) 11:07:22.41ID:ujyZkRfk0
mplayer ならurl与えれば再生してくれるから、ファイル処理は不要
208名称未設定
垢版 |
2018/03/18(日) 11:11:40.02ID:CfWB8Fg40
どうもありがとうございます
今ググってたらmpg123でもできました
2018/03/18(日) 16:26:54.35ID:FFApwDx40
SleepWatcherでsudoが必要なコマンドを自動実行したいのですがどうすればいいですか
echoでパスワードを書くのは避けたいです
2018/03/18(日) 17:56:37.02ID:2PUA6yhh0
>>206
Siriで任意のコマンド/アプリを実行するにはSiriKit使ってアプリを作る必要がある
iTunesに入れとけばSiriから曲名で呼び出せる

Siriじゃなく音声入力なら任意のアプリを実行可能
アクセシビリティから設定
2018/03/18(日) 18:17:29.25ID:+B39txGW0
パスワードを自分だけrwできるファイルに書いといて
cat そのファイル | sudo -S
でいけんかね? ダセーけど
2018/03/18(日) 18:39:48.60ID:ujyZkRfk0
sudoersをいじる方法と、pwをkeychainに保存してsecurityコマンドで引っ張る方法があった希ガス
2018/03/18(日) 18:49:32.57ID:ujyZkRfk0
#! /usr/bin/python
import urllib2, re
if __name__ == "__main__":
 src = "http://www.nhk.or.jp/r-news/podcast/nhkradionews.xml";
 xml = urllib2.urlopen(src).read()
 url = re.search("http.+?¥.mp3",xml).group(0)
 print url

これをcurrent_news.pyとか名前をつけて、実行権限付与してどっかに保存
mplayer `/path/to/current_news.py`で動くはず
エラー処理はこれっぽっちもしてないので、podcast登録してitunes叩く方が無難かも
2018/03/18(日) 18:52:52.08ID:ujyZkRfk0
あ、スクリプトの段下げしてる部分は半角スペース4つで置き換え、
¥は半角バックスラッシュで置き換えで
2018/03/18(日) 20:22:38.35ID:FFApwDx40
ありがとうございます
別の質問になるんですがNASのマウントを自動実行するコマンドはありますか
/volumes以下にマウントポイントを作るには管理者権限が必要になり
mountコマンドを管理者権限で実行してしまうとFinderから見えない状態になります
これらの一連のコマンドをsudoを使わずに実行できれば幸いです
mountコマンドで所有者が指定できればいいのですが
よろしくお願いします
2018/03/18(日) 20:36:59.92ID:9+Gk7PKs0
>>215
試してないけど、マウントポイントのディレクトリに該当ユーザのw権限つければできんじゃね?
2018/03/18(日) 20:45:05.83ID:FFApwDx40
こんな感じで権限全部付与して見たがsudo付けないと中身見れない
drwxrwxrwx 1 root wheel 16384 3 18 18:56 Share
2018/03/18(日) 21:59:51.02ID:7MlSpWWw0
マウントを自動実行したいだけだったら、なんかアレだが、Finderでマウントして、そのボリュームのエイリアスを作り、エイリアスを開けば勝手にマウントしてくれる
open そのエイリアス(ファイル)
ってコマンドを実行するようにすればFinderで手動でと変わらない。byエイリアス好き

Finderでのマウント/エイリアスのマウントと同じこと(openでなく)できるのがコマンドでありそうななさそうな
2018/03/18(日) 22:00:15.63ID:dsZXyD4z0
ていうか、そもそもどういう時にどういう事をやりたいのか書いた方がいいんじゃないの
なんかそこだけ切り出して質問する奴多いけどさ
2018/03/18(日) 22:02:24.89ID:7MlSpWWw0
ちなみに、エイリアスはボリューム限定なわけではなく、ファイルサーバー中にあるファイル/フォルダ(ディレクトリ)でも、エイリアス開けば勝手にマウントしてのファイル/フォルダが開く
2018/03/18(日) 22:30:12.61ID:7MlSpWWw0
ああ、>>215で別に基本的に問題はないな

sudo mkdir /Volumes/Hoge
sudo chown yourname:staff /Volumes/Hoge
mount_smbfs smb://... /Volumes/Hoge

ってすればいいだけのよう。Finderでアンマウントしたら、/Volumes/Hoge も消されるという、Finderでのマウントと変わらんな
マウントポイントの作成(chownも含め)が、/Volumes が管理者権限が必要なディレクトリってだけで、作ってしまえばマウント自体は管理者権限いらんな
2018/03/18(日) 23:12:45.48ID:FFApwDx40
ありがとうございます
これをログイン時に自動実行したいのですが
管理者権限じゃないとダメなのでログイン項目は使えず
LoginHookもいいんですけど仮にコマンドが終了するまで時間がかかる場合
デスクトップが表示されるまで待たされてしまうんですよね
いい方法ないですかね
2018/03/18(日) 23:56:15.45ID:7MlSpWWw0
エイリアス&openコマンドを使えw管理者権限全くいらないよ
Script EditorかAutomatorでアプリ作ってそのアプリをログイン項目に入れればいいんじゃね
マウントポイント作成に管理者権限が必要でも、シェル(そのもの、もしくはAppleScriptでのdo shell script)でその部分だけ管理者権限で実行にできるから「管理者権限じゃないとダメなのでログイン項目は使えず」なんてことはないよ
2018/03/19(月) 00:37:12.51ID:6sT/FsA+0
>LoginHookもいいんですけど仮にコマンドが終了するまで時間がかかる場合〜
echoでパスワード書きたくないというわがままw(わからないでもないけど)もありでこれなのか
バックグラウンドに投げてしまうか、atで1秒後に実行予約入れて終了にすればいいんじゃないの
2018/03/19(月) 00:41:29.84ID:brr6aMt60
複数のaacファイルがあります。
それらをファイルを以下のコマンドで変換したいんですが、ファイルの数だけコマンドを入力するのでは無く、一気に処理するにはどのように書けばよいでしょうか?

muxer -i 1.aac\?sbr --file-format m4a -o 1.m4a
muxer -i hoge.aac\?sbr --file-format m4a -o hoge.m4a
2018/03/19(月) 00:46:15.57ID:6sT/FsA+0
ああ、atは1秒後とかは厳密にはできなかった
2018/03/19(月) 01:03:46.90ID:eFgpBFG/0
>>225
シェルスクリプトでループさせる

ffmpegなら -i infile1 -i infile2 -map 0 outfile1 -map 1 outfile2みたいのも出来るけど
インプット別にアウトプットを作成したいならループで一つ一つ処理したほうが何かと便利
2018/03/19(月) 03:30:12.16ID:brr6aMt60
>>227
ありがとうございます

フォルダの中のaacファイルを全て変換対象として、ファイル名は同じにしようと思ってこのように書いたんですが、${bbb%.aac} の部分の書き方がよく分からず、エラーになってしまいます。
どう書けばよいですか?

for bbb in $(find . -name *.aac); do
muxer -i $bbb?sbr --file-format m4a -o ${bbb%.aac}.m4a
done
2018/03/19(月) 03:40:02.20ID:brr6aMt60
これでいけました。
どうもありがとうございました。

for bbb in *.aac; do
muxer -i $bbb?sbr --file-format m4a -o ${bbb%.aac}.m4a
done
2018/03/19(月) 03:43:46.25ID:eFgpBFG/0
>>228
シェルスクリプトのスレで聞いたほうがいいんじゃないか?

$ cat for-loop.sh
#! /usr/bin/env bash

for file in "$@"; do
echo "-----"
echo "input : $file"
echo "output: ${file%.*}.m4a"
done

$ ls *.aac
bar.aac foo.aac

$ ./for-loop.sh *.aac
-----
input : bar.aac
output: bar.m4a
-----
input : foo.aac
output: foo.m4a
2018/03/19(月) 04:12:46.20ID:brr6aMt60
>>230
どうもありがとうございます
そのようなスレもあったんですね

書き込んでくれたスクリプトを調べてみます
2018/03/19(月) 05:22:40.04ID:brr6aMt60
シェルスクリプトスレは見当たらなかったです
2018/03/19(月) 05:37:33.58ID:brr6aMt60
>>229
この書き方だとaacファイルが無いとエラーが出てしまいました。
aacファイルが有るときのみ「muxer〜」を実行するにはどう書いたらよいですか?
if文を使うのかな?と思っていますが、for文との組み合わせが分かりませんでした。
2018/03/19(月) 06:48:14.59ID:6sT/FsA+0
/bin/ls -1 *.aac | while read bbb; do
2018/03/19(月) 06:51:59.50ID:6sT/FsA+0
ああ、同じくエラーが出るか。安直に
/bin/ls -1 *.aac 2> /dev/null | while read bbb; do
2018/03/19(月) 07:50:40.32ID:brr6aMt60
>>235
ありがとうございます。
エラーは出なくなりました。

./hoge.shだけを動かしたらカレントディレクトリ内のaacファイル全て
./hoge.sh hoge.aac と指定したらその指定したaacファイルのみ

スクリプト実行後、aacファイルが存在しない場合はその旨を通知して終了
aacファイルがある場合は、次へ

そのaacファイルを何らかの方法で調べ(mediainfoのFormat profile欄?)、
HE-AACの場合は
muxer -i file.aac?sbr --file-format m4a -o file.m4a

通常のAACの場合は
muxer -i file.aac --file-format m4a -o file.m4a
を実行

変換したファイル数を通知して終了

ってやる事も出来ますか?
2018/03/19(月) 08:40:16.98ID:brr6aMt60
ifを試してみてるんですが、これだとmuxerでエラーになってしまい変換出来ませんでした。

file () {
/bin/ls -1 *.aac
}

if [ -e $file ]; then
# aacファイルが存在する場合
muxer -i $file?sbr --file-format m4a -o ${file%.aac}.m4a
else
# aacファイルが存在しない場合
echo "aac ファイルはありません."
fi
2018/03/19(月) 08:42:24.78ID:856/uQDL0
少しはググれ
2018/03/19(月) 14:23:11.45ID:6sT/FsA+0
まあ、ググってるんだし勉強してる姿勢はあるからな。そう無下には...と、思うが、さすがに安易に聞きすぎではあるな

>>236 全然できる
>>237 んー、むちゃくちゃw もちょっとちゃんと勉強しよう。なぜ関数てか関数てのもわかってないか。man testを見よう
2018/03/19(月) 15:58:01.65ID:brr6aMt60
>>238
>>239

file () {をやめて、一番最初に教えていただいたforとifを組み合わせることで、ファイルが有るときは全て処理して無いときはメッセージを出す事が出来ました。
ただ、testのmanを見た感じでは[]の使い方間違えている気がしています。

for file in *.aac; do
if [ -e $file ] ; then
# aacファイルが存在する場合
muxer -i $file?sbr --file-format m4a -o ${file%.aac}.m4a
else
# aacファイルが存在しない場合
echo "aacファイルはありません."
fi
done

HE-AACか否かは、
mediainfo $file | awk '/HE-AAC/'
の結果で判断してifの下にelifをつくってそこでそれぞれmuxerを行えば良いのかなと思いました。
ググります。
2018/03/19(月) 16:06:33.40ID:eFgpBFG/0
>>236
ちょっと欲張り過ぎw

1つ目のやつはPositional Parameter学ぶといいよ
http://wiki.bash-hackers.org/scripting/posparams

シェルスクリプトのスレはココ
https://mevius.5ch.net/test/read.cgi/unix/1489979246/
2018/03/19(月) 16:11:24.10ID:eFgpBFG/0
↓これを ./hoge.sh で実行する場合と
./hoge.sh 1.aac 2.aacで実行する場合とで比べてみて

#! /usr/bin/env bash

echo "¥$#: $#"
echo "¥$@: $@"
echo "¥$1: $1"
echo "¥$2: $2"
echo "¥$3: $3"

func() {
echo "---inside func---"
echo "¥$#: $#"
echo "¥$@: $@"
echo "¥$1: $1"
echo "¥$2: $2"
echo "¥$3: $3"
}

if [ $# -eq 0 ]; then
func *.aac
else
func "$@"
fi
2018/03/19(月) 21:30:32.85ID:brr6aMt60
オライリーの入門bashを買ってきました
難しいです・・・
HE-AACと通常のAACで変換の仕方を分けたいんですが、elifの書き方が間違えているようです。
コマンド周辺を[]か()か{}で括ったりechoで出力しなければいけないんでしょうか?
本を読んでみます。

for file in *.aac; do
if [ -e $file ] ; then
# aacファイルが存在する場合
# HE-AACの場合
elif mediainfo $file | awk '/: HE-AAC/' = "Format profile : HE-AAC / LC"; then
muxer -i $file?sbr --file-format m4a -o ${file%.aac}.m4a
#AACの場合
elif mediainfo $file | awk '/: LC/' = "Format profile : LC"; then
muxer -i $file --file-format m4a -o ${file%.aac}.m4a
#.aacで終わるファイル名だけど、上のどちらでも無い場合
#elif どうかくのかな; then
else
# aacファイルが存在しない場合
echo "aacファイルはありません."
fi
done

>>242
試してみました
前者の方は---inside func---以前は¥:だけで、
後者の方は---inside func---以前以後同じ表示でした
これらがPositional Parameter(位置パラメーター?)の例かと思ったけれど、それだけじゃなく、今自分がやりたい事のヒントがいくつも入っている気がしました。
2018/03/19(月) 21:32:55.33ID:brr6aMt60
>>241
新Mac板内だと思っていました。
移動したほうがいいでしょうか?
2018/03/19(月) 22:27:01.09ID:eFgpBFG/0
>>243
シェルスクリプトの書き方だから移動したほうがいいんじゃないかな


単にマッチする行があるかどうかならawkじゃなくgrepでいい
if文の中で実行するコマンドは実行直後の“$?”が0ならtrue、1ならfalse

$ mediainfo hoge.aac | grep '^Format profile *: LC$'
$ echo $?

elifが分からないと思えばリファレンスを検索
http://tiswww.case.edu/php/chet/bash/bashref.html#Reserved-Word-Index_rw_letter-E
2018/03/19(月) 23:09:15.25ID:brr6aMt60
>>245
どうもありがとうございます
移動します
みなさんありがとうございました
おかげで大分進みました
2018/03/20(火) 00:24:34.18ID:Zfl5TJwo0
bashrefならわざわざ他所見なくたって昔から入ってるだろ
んなことも知らんのか...
/usr/share/doc/bash/bashref.html
/usr/share/doc/bash/bashref.pdf
248名称未設定
垢版 |
2018/03/25(日) 07:10:14.52ID:TJoOpRy+0
plistの特定の値だけコピーするシェルスクリプトを書きたいのですが、マルチバイト文字が
"¥U307e"のような表記になってしまいます(¥はバックスラッシュ)
何か回避する方法ないですかね…?

_VAL=$(defaults read "/Volumes/OtherMac/Users/other/Library/Preferences/pbs" NSServicesStatus)
defaults write "pbs" NSServicesStatus -dict "${_VAL}"
2018/03/25(日) 11:26:31.77ID:fyK68VIc0
pbs特有の話?
ならそのキーしかないみたいだからファイルごとコピーしちゃう
でpbsとcfprefsdを殺すかログインし直す
2018/03/25(日) 13:53:07.17ID:eOzSZvCQ0
>>248
$ echo -e “¥U307e”
$ printf “¥U307e”

bashなら4.2以上が必要
レスを投稿する


ニューススポーツなんでも実況