Spa*_*ine 2 linux macos shell compatibility
我有一段代码来编译tex文档.
#!/usr/bin/env bash
filename="thesis"
pdflatex -shell-escape $filename
makeglossaries $filename
bibtex $filename
pdflatex $filename
pdflatex $filename
# for Ubuntu
#xdg-open $filename.pdf
# for mac
open $filename.pdf
Run Code Online (Sandbox Code Playgroud)
如何使此脚本在Linux和OS X上运行?我认为应该是这样的,
if is Linux; then
xdg-open $filename.pdf
elif is OS X; then
open $filename.pdf
fi
Run Code Online (Sandbox Code Playgroud)
我建议您不要尝试检测操作系统,而是尝试进行功能检测,即在使用未在所有平台上实现的东西之前,尝试检测当前平台是否支持该东西,无论是什么。你可以做类似的事情如下
if command -v xdg-open >/dev/null 2>&1; then
xdg-open $filename.pdf
elif command -v open >/dev/null 2>&1; then
open $filename.pdf
else
echo >&2 "I don't know how to open the pdf"
fi
Run Code Online (Sandbox Code Playgroud)
上面的代码command -v xdg-open >/dev/null 2>&1将检查您的路径中是否有一个名为的程序xdg-open可用。如果是的话,我们就用它。否则,我们将尝试不同的选择。
检测当前平台的标准方法是调用uname:
uname=$(uname);
case "$uname" in
(*Linux*) openCmd='xdg-open'; ;;
(*Darwin*) openCmd='open'; ;;
(*CYGWIN*) openCmd='cygstart'; ;;
(*) echo 'error: unsupported platform.'; exit 2; ;;
esac;
"$openCmd" "$filename.pdf";
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
921 次 |
| 最近记录: |