2015-11-01 72 views
0

我想明白为什么当我在终端它的工作原理,但是当我通过一个脚本来运行它不bash脚本 - > PS读什么命令启动的脚本中

执行以下命令

当我在终端

./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" 

有回音命令上述命令之前写在mem_results一些文字,这些作品。 如果我删除了no标头标志,它会在文件中写入标头,但不会写入结果。

我知道脚本运行,因为它在最后生成一个文件。 这一直在困扰着我几个小时。

谢谢 Alex。

+1

请编辑您的问题,以显示在这两种情况下mem_results'的'内容。 (你可能想追加'_cmdline'和'_script',还记得'>>'是追加到现有的文件中的,如果你犯了一个错误,当你去的时候,错误的版本会一直出现在文件的顶部你可能想切换到'> mem_results_cmdline'等等。祝你好运。 – shellter

+0

你确定'tparente'仍然在第二种情况下正常运行吗?是否使用'bash〜/ Documents/tparente&ps --no-headers -C tparente -o rss,vsz >>“mem_results”'正常工作吗? –

+0

使用bash或shell不会提供正确的输出。 –

回答

0

我想我可能找到了答案。

试图通过命令行配置的一对夫妇后:这一个工程:

./tparente & ps --no-headers -C tparente -o rss,vsz >> "mem_results" 

的差别是细微的(没有“SH”) 这条线路是从脚本;我注意到当我试图运行脚本并在另一个终端中运行ps命令时,tparente进程就在那里。我不知道为什么,但我的直觉告诉我要删除SH,我做了,它的工作原理。

如果任何人有一个正确的解释继续:)