Ubuntu 16.04に次のスクリプトを正しく含めたいと思います。パスワード
#!/bin/sh
# http://tex.stackexchange.com/a/20886/13173
# $Id: pdf2eps,v 0.01 2005/10/28 00:55:46 Herbert Voss Exp $
# Convert PDF to encapsulated PostScript.
# usage:
# pdf2eps <page number> <pdf file without ext>
pdfcrop $2.pdf
pdftops -f $1 -l $1 -eps "$2-crop.pdf"
rm "$2-crop.pdf"
mv "$2-crop.eps" $2.eps
これをしましたが、間違っていると思います。
sudo vim /usr/local/bin/pdf2eps.sh
- そこにコードをコピーして貼り付けます。
sudo chmod 777 /usr/local/bin/pdf2eps.sh
rehash
- スクリプトが
pdf2eps.sh
PATHにあることがわかります。
私はここにいるのが好きではありません。
vim
次に実行sudo
- 私の中の他のものは
/usr/local/bin/
ファイル自体ではなく、私がここで何か間違っていることを示すシンボリックリンクです。
パスにスクリプトを正しく/安全に追加するには?
ベストアンサー1
vim
何の問題もなく動作しますsudo
。これは、ルートアクセスが必要なディレクトリにファイルを作成する正しい方法です。残りのファイルはリンクもあるので問題ありません。気分が良くなると、代わりにスクリプトを作成できますが、実際には/usr/bin
。/usr/local/bin
ファイルシステム階層標準:
/usr/local階層は、システム管理者がソフトウェアをローカルにインストールするときに使用します。システムソフトウェアが更新されたら上書きしないでください。ホストグループ間で共有できますが、/usrにはないプログラムやデータに使用できます。
ローカルにインストールされているソフトウェアは、/usrのソフトウェアを交換またはアップグレードするためにインストールしない限り、/usrではなく/usr/localになければなりません。[28]
したがって、FSHをフォローしたい場合しなければならない手動でインストールしたすべてのものをダウンロードすると、/usr/local
正しいことが行われました。
これで、拡張機能が必要ない場合は.sh
削除してください。 *nixシステムでは機能しません。
sudo mv /usr/local/bin/pdf2eps.sh /usr/local/bin/pdf2eps
これでスクリプトは$PATH
asに配置されますpdf2eps
。
しかし、あなたがしなければならないことは、スペースや他の奇妙な文字を含むファイル名で実行された場合にスクリプトが失敗する原因となるいくつかの問題を解決することです。次のように修正します。
#!/bin/sh
# http://tex.stackexchange.com/a/20886/13173
# $Id: pdf2eps,v 0.01 2005/10/28 00:55:46 Herbert Voss Exp $
# Convert PDF to encapsulated PostScript.
# usage:
# pdf2eps <page number> <pdf file without ext>
if [ $# -ne 2 ]; then
echo "Exactly 2 filenames are needed"
exit 1
fi
pdfcrop "$2.pdf"
pdftops -f "$1" -l "$1" -eps "$2-crop.pdf"
rm "$2-crop.pdf"
mv "$2-crop.eps" "$2.eps"