Stata: 苹果(MAC)用户无法使用 shellout 命令?

发布时间:2020-07-21 阅读 4501

Stata 连享会   主页 || 视频 || 推文

温馨提示: 定期 清理浏览器缓存,可以获得最佳浏览体验。

课程详情 https://gitee.com/arlionn/Course   |   lianxh.cn

课程主页 https://gitee.com/arlionn/Course


Q: 苹果用户无法使用 shellout 命令吗?这个命令太好用了!

A: 当然可以!

  • 方法1: 使用 !open 命令替代 Windows 系统下的 shellout 命令;好处是,无需下载任何新命令。
  • 方法2: 使用暨南大学 程振兴 写的 copen 命令。该命令可以同时在 Windows 和 Mac 系统下运行,完美替代此前的 shellout 命令。但对于 Windows 老用户而言 (以后也不准备使用 Mac),没有必要使用该命令。

copen:另一个 shellout (both Windows and Mac)

文件下载

copen.ado copen.sthlp

使用方法: 保存到 Stata 安装目录下的 ..\plus\c 文件夹中即可。(Note: 可以使用 sysdir 查看你的文件路径)。

高级设定 (未测试,风险自担)

苹果用户 使用 shellout 功能的低成本解决方案:

  • copen 的代码替换 shellout 的代码,覆盖掉 shellout.ado 即可。好处是不用更改我讲义中的代码。  

否则,你就只能将我讲义中的所有 shellout 都替换成 !open 了。


附:适用于 Mac 和 Windows 的 打开工具 (程振兴)

这个命令是从 outreg2 包中的 shellout 命令修改而来。shellout 命令只能用于Windows 系统,因此为了方便自己使用,我对其进行了稍微的改写使之也适用与 Mac 系统。

运行 ssc install outreg2 命令即可安装 shellout 命令,打开 shellout.ado 即可看到它的源代码:

program define shellout
version 7.0

syntax [anything] [using/] [,cd]

* does the shelling
if "`c(os)'"=="Windows" | "$S_MACH"=="PC" {
        if "`using'"~="" {
                winexec cmd /c start ""  "`using'"
        }
        else {
                if "`cd'"~="cd" {
                        cap winexec `anything'
                        if _rc==193 {
                                winexec cmd /c start ""  "`anything'"
                        }
                        if _rc==601 {
                                noi di in yel "Cannot find `anything'. Make sure typed the name correctly."
                        }
                }
                else {
                        winexec cmd /c cd `c(pwd)'\ &  `anything'
                }
        }
}
else {
        * invisible to Stata 7
        local Version7 ""
        cap local Version7 `c(stata_version)'
        
        if "`Version7'"=="" {
                * stata 7
        }
        else {
                * non-PC systems
                di "{opt shellout} probably will not work with `c(os)'"
                shell `using'
        }
}
end

很容易发现,在这个程序里面进行了操作系统的判断,针对于非Windows系统的电脑会显示运行else部分,即无法使用,所以我们只需要改造一下else部分即可。Mac的shell命令——open有类似的功能,所以就直接放进去就好了,即:

*! 打开指定文件、网址、文件夹
*! 程振兴 2018年7月13日
cap prog drop copen
prog define copen
version 7.0
syntax [anything] [using/] [,cd]
if "`c(os)'"=="Windows" | "$S_MACH"=="PC" {
 if "`using'"~="" {
 winexec cmd /c start ""  "`using'"
 }
 else {
 if "`cd'"~="cd" {
 cap winexec `anything'
 if _rc==193 {
 winexec cmd /c start ""  "`anything'"
 }
 if _rc==601 {
 noi di in yel "找不到`anything'."
 }
 }
 else {
 winexec cmd /c cd `c(pwd)'\ &  `anything'
 }
 }
}
else {
 !open "`anything'"
}
end

为了区别原来的shellout命令,我将这个命令为copen

文件下载:

copen.ado copen.sthlp

相关课程

连享会-直播课 上线了!
http://lianxh.duanshu.com

免费公开课:


课程一览

支持回看,所有课程可以随时购买观看。

专题 嘉宾 直播/回看视频
最新专题 DSGE, 因果推断, 空间计量等
Stata数据清洗 游万海 直播, 2 小时,已上线
研究设计 连玉君 我的特斯拉-实证研究设计-幻灯片-
面板模型 连玉君 动态面板模型-幻灯片-
面板模型 连玉君 直击面板数据模型 [免费公开课,2小时]

Note: 部分课程的资料,PPT 等可以前往 连享会-直播课 主页查看,下载。


关于我们

  • Stata连享会 由中山大学连玉君老师团队创办,定期分享实证分析经验。直播间 有很多视频课程,可以随时观看。
  • 连享会-主页知乎专栏,300+ 推文,实证分析不再抓狂。
  • 公众号推文分类: 计量专题 | 分类推文 | 资源工具。推文分成 内生性 | 空间计量 | 时序面板 | 结果输出 | 交乘调节 五类,主流方法介绍一目了然:DID, RDD, IV, GMM, FE, Probit 等。
  • 公众号关键词搜索/回复 功能已经上线。大家可以在公众号左下角点击键盘图标,输入简要关键词,以便快速呈现历史推文,获取工具软件和数据下载。常见关键词:课程, 直播, 视频, 客服, 模型设定, 研究设计, stata, plus, 绘图, 编程, 面板, 论文重现, 可视化, RDD, DID, PSM, 合成控制法

连享会主页  lianxh.cn
连享会主页 lianxh.cn

连享会小程序:扫一扫,看推文,看视频……

扫码加入连享会微信群,提问交流更方便

✏ 连享会学习群-常见问题解答汇总:
https://gitee.com/arlionn/WD