Linux Mintを使用してSFTPサーバを実行している私のために、ビデオをたくさんコンパイルするLinuxマシンにbashスクリプトがあります。私はCygWin(Windows 10のbashより優れている)を使用してより高速にエンコードできるWindows 10 PCを持っていて、SFTPドライブをプログラムで検出できます。私はスクリプトを実行し、エンコードしたいビデオファイルはLinux PC上で動作していても存在しないと述べています。この行をスクリプトに追加し、CygWinのルートディレクトリを変更します。Linux PCが検出したファイルをCygwinが検出しない
rootdir='/cygdrive/x'
if [ ! -d "$rootdir" ];then rootdir='';fi
Linux上でしばらくバッシュ私はエンコードしたいファイル名は、それらにスペースを持っている、と私は、彼らが位置し、ls
を実行しているディレクトリに移動したときに、私は気づく、Cygwinは、単一引用符を追加し、ファイル名をエスケープミントはそれをしません。私がしたいことはCygwinのWindowsマシン上でスクリプトを実行することができるため、Linuxマシンよりもはるかに高速にビデオをエンコードすることができますが、CygWinにLinux PCのようにファイルを正しく検出させる方法はわかりません。ここで
#!/bin/bash
cudr="`pwd`";rootdir='/cygdrive/x'
if [ ! -d "$rootdir" ];then rootdir='';fi
mkdir -p "op"
ffmpeg -i "$cudr/a dog.mp4" "$cudr/op/1.mp4"
ffmpeg -i "$cudr/the cat's fat.mp4" "$cudr/op/2.mp4"
これは、Linux PC上の細かい動作しますが、それは、LSにありますにもかかわらず、入力ファイルが見つからない状態になるCygWinのffmpegの中で実行されているが、脱出したとき。
Cygwinのlsは引用符で印刷しているかもしれませんが、人間の利益のためです。とにかくその 'ls'出力を解析するべきではありません。あなたのコードを表示して、何をしようとしているのかについてもっと詳しく知っていれば、助けてくれるかもしれません。 (http://mywiki.wooledge.org/ParsingLsを参照) –
@EricRenoufサンプルコードを追加しました。 –
@EricRenouf Cygwinの 'ls'はデフォルトでそれをしません。彼の投稿には' ls'の出力を解析していることは示唆されていません。ファイル名の中に余分な一重引用符が含まれている可能性があります。元のポスターは、WindowsエクスプローラやWindowsのコマンドプロンプトから 'dir'コマンドを使用して、これらのファイルに実際にどのような名前があるか調べることができます。 –