我想了解为什么当我在终端中执行以下命令时,它可以工作,但是当我运行脚本时它不会
我在终端中运行它时的命令
./tparente & ps --no-headers -C tparente -o rss,vsz >> "mem_results"
mem_result文件中写入了rss和vsz。 我通过终端运行它时的命令略有修改,它写成如下:
sh ~/Documents/tparente & ps --no-headers -C tparente -o rss,vsz >> "mem_results"
有一个echo命令在上述命令之前在mem_results中写入一些文本,这些是有效的。 如果我删除no header标志,它会在文件中写入标题但不是结果。
我知道脚本已运行,因为它最终生成了一个文件。 这已经困扰了我几个小时了。
谢谢 亚历克斯。
答案 0 :(得分:0)
我想我可能找到了答案。
尝试了几个命令行配置后:这个可以工作:
./tparente & ps --no-headers -C tparente -o rss,vsz >> "mem_results"
区别很微妙(没有“sh”) 这一行来自剧本;我注意到的是,当我尝试在其上运行脚本并在另一个终端中运行ps命令时,tparente进程就在那里。我不知道为什么,但是我的直觉告诉我要删除sh,我做了,它有效。
如果有人有正确的解释,请继续:)