我一直在深入研究Python和GUI应用程序的世界,并取得了一些相当大的进步。不过,我想要一些关于如何进行以下操作的建议:我已经使用python(2.6.6-无法升级系统,因为它是遗留的)和显示多个按钮的gtk创建了一个GUI应用程序,例如应用程序1、应用程序2、应用程序3当我点击一个按钮时,它会运行一个bashshell脚本。该脚本将设置一些必需的环境变量,然后执行另一个外部应用程序(使用这些环境变量)Example:1)useclicksonbuttonapp12)GUIthenlaunchesapp1.shtosetupenvironmentvariables3)GUIthenr
最近我发现在客户的ksh脚本中使用echo来分配变量的异常用法。比如下面这样的例子有很多a='something'b='else'c=`echo"${a}${b}"`我一直无法想出为什么有人会这样做。这可能有一些遗留原因吗?(我做shell已经30多年了,以前从未见过这个)还是只是无知? 最佳答案 无论是在当前的bash中,还是在它的POSIXsh或Bourne前身中,都没有任何令人信服的理由。c="$a$b"...是给定代码的完全替代,运行速度更快(尝试将其置于循环中;由反引号创建的命令替换,派生出一个新的shell作为子进程并读
在我的ksh脚本中我只需要计算整数有时我会得到float,例如3.49或4.8...等所以我需要根据以下规则(示例)将float转换为整数3.49willbe32.9willbe34.1willbe423.51willbe24982.4999willbe98210.5willbe11(thisexampleiffloatis.5thenitwillroundup)请建议如何在ksh或awk或perl中执行此操作或者可以在我的ksh脚本中运行的任何其他语言 最佳答案 经过简短的googlesession后,我发现printf似乎能够完
我想将命令的结果存储到我的shell脚本中的一个变量中。我似乎无法让它工作。我想要目录中最新日期的文件。PRODUCT='ls-t/some/dir/file*|head-1|xargs-n1basename'它不会工作 最佳答案 您有两个选择,$或backsticks`。1)x=$(ls-t/some/dir/file*|head-1|xargs-n1basename)或2)x=`ls-t/some/dir/file*|头-1|xargs-n1基名`echo$x编辑:删除(2)中不必要的括号。
我一直认为子shell不是子进程,而是另一个同一进程中的shell环境。我使用一组基本的内置函数:(echo"Hello";read)在另一个终端上:ps-tpts/0PIDTTYTIMECMD20104pts/000:00:00ksh因此,kornShell(ksh)中没有子进程。输入bash,它的行为似乎有所不同,给定相同的命令:PIDTTYTIMECMD3458pts/000:00:00bash20067pts/000:00:00bash因此,bash中的一个子进程。通过阅读bash的手册页,可以明显看出为子shell创建了另一个进程,然而它伪造了$$,这很狡猾。bash和ksh
我们的ksh环境定义了几个函数。可以使用typeset-fksh命令(或functions别名)列出这些函数的名称。是否可以查看这些函数的定义(即源代码)?这似乎是一个显而易见的问题,但我已经尝试了所有方式的参数来typeset-f但没有成功。举个例子(在Linux上):$foo()>{>echofoo>}$foofoo$typeset-ffoofoo$对于环境中默认定义的一些(但不是全部)其他函数,typeset-f确实显示了源。更新1:这发生在Linux内核2.4.21-32更新2:更新2:Ctrl-V给出“版本M1993-12-28n+”-看起来这是一个相当旧的版本,因此可能没有
在这里,广度优先列表很重要。此外,限制搜索的深度会很好。$find.-typed/foo/foo/subfoo/foo/subfoo/subsub/foo/subfoo/subsub/subsubsub/bar/bar/subbar$find.-typed-depth/foo/subfoo/subsub/subsubsub/foo/subfoo/subsub/foo/subfoo/foo/bar/subbar/bar$/foo/bar/foo/subfoo/bar/subbar/foo/subfoo/subsub/foo/subfoo/subsub/subsubsub如果可能的话,我想
在这里,广度优先列表很重要。此外,限制搜索的深度会很好。$find.-typed/foo/foo/subfoo/foo/subfoo/subsub/foo/subfoo/subsub/subsubsub/bar/bar/subbar$find.-typed-depth/foo/subfoo/subsub/subsubsub/foo/subfoo/subsub/foo/subfoo/foo/bar/subbar/bar$/foo/bar/foo/subfoo/bar/subbar/foo/subfoo/subsub/foo/subfoo/subsub/subsubsub如果可能的话,我想
当我执行unzip-lzipfilename时,我看到了129562708-22-1107:10A.pdf47398008-22-1107:10B.pdf...我只想查看文件名。我试试这个unzip-lzipFilename|cut-f4-d""但我不认为分隔符只是""。 最佳答案 最简单的方法是使用以下命令:unzip-Z-1archive.zip或zipinfo-1archive.zip这将只列出文件名,每行一个。这两个命令是完全等价的。-Z选项告诉unzip将其余选项视为zipinfo选项。参见unzip的手册页和zipinf
当我执行unzip-lzipfilename时,我看到了129562708-22-1107:10A.pdf47398008-22-1107:10B.pdf...我只想查看文件名。我试试这个unzip-lzipFilename|cut-f4-d""但我不认为分隔符只是""。 最佳答案 最简单的方法是使用以下命令:unzip-Z-1archive.zip或zipinfo-1archive.zip这将只列出文件名,每行一个。这两个命令是完全等价的。-Z选项告诉unzip将其余选项视为zipinfo选项。参见unzip的手册页和zipinf