【发布时间】:2013-11-25 11:07:00
【问题描述】:
我正在编写一个 sh 文件来获取文件的修改时间。我希望 sh 文件适用于 Mac 和 Ubuntu。
我使用 /bin/sh 并将 #!/bin/sh 添加到 bash 文件的第一行。我想 /bin/sh 在两个操作系统上的行为应该相同。但事实并非如此。以下是差异的两个示例。
-
以下脚本适用于 Mac,但不适用于 Ubuntu。
modTime=$(stat -f "%m" -t "%s" $filepath) -
下面的脚本适用于 Ubuntu,但不适用于 Mac。
modTime=$(date +%s -r $filepath)
我的问题是:
- 为什么 /bin/sh 在 Mac 和 Ubuntu 上的行为不同?
- 如果要写跨平台的sh脚本,应该如何避免平台依赖的代码?
【问题讨论】:
标签: macos bash shell ubuntu sh