在BASH中,是否可以在函数体中获取函数名? 以下面的代码为例,我想在它的主体中打印函数名“Test”,但是“$ 0”似乎是指脚本名而不是函数名。 那么如何获得函数名? #!/bin/bash function Test { if [ $# -lt 1 ] then # how to get the function name here? echo "$0 num" 1>&2 exit 1 fi local num="${1}" echo "${num}" } # the correct function Test 100 # missing argument, the function should exit with error Test exit 0
我知道这不是一个直接的“发展”问题,但我需要这个信息来testing一个开发项目,所以我认为有人可能会遇到类似的问题。 我将testing一个运行TCP服务器的软件,并根据发送的命令回复一些答案。 我会testing这个软件,如果它不能正常工作,就不想编写代码。 所以我想发送这些命令和testing驱动器的服务器软件。 我怎样才能实现这个Linux的盒子?
我有一个备份系统,它创build以Unix Timestamps命名的目录,然后使用硬链接系统(rsync中的–link-dest)创build增量备份,所以通常第一次备份非常大,然后以后备份的分数会很大。 这是我当前备份的输出: root@athos:/media/awesomeness_drive# du -sh lantea_home/* 31G lantea_home/1384197192 17M lantea_home/1384205953 17M lantea_home/1384205979 17M lantea_home/1384206056 17M lantea_home/1384206195 17M lantea_home/1384207349 3.1G lantea_home/1384207678 14M lantea_home/1384208111 14M lantea_home/1384208128 16M lantea_home/1384232401 15G lantea_home/1384275601 43M lantea_home/1384318801 似乎一切正常,但是,例如,最后一个目录lantea_home/1384318801 : root@athos:/media/awesomeness_drive# du -sh lantea_home/1384318801/ 28G lantea_home/1384318801/ 我始终得到这个行为,为什么目录被第二个du命令考虑为28G? 注 – 输出与-P和-L标志保持一致。
我正在尝试写一个bash脚本。 在这个脚本中我想让用户input一个目录的path。 然后我想在这个string的末尾附加一些string,并build立一些子目录的path。 例如,假设用户input一个像这样的string: /home/user1/MyFolder 现在我想在这个目录下创build2个子目录,并在那里复制一些文件。 /home/user1/MyFolder/subFold1 /home/user1/MyFolder/subFold2 我怎样才能做到这一点?
在我的Linux机器上,我希望创build一个特定文件夹的.tar.bz2文件。 一旦我将自己置于该文件夹(在terminal中),我将在terminal命令行中input什么内容以将压缩文件夹放在我的机器的主目录中? 假设我在/ home / user /文件夹中。 在文件夹“文件夹”中有几个文件(txt,.c等)。 如何压缩.tar.bz2types的文件夹并将其放在我的/ home目录中? 在/ home / user /文件夹中,我试过sudo tar -cvjSf folder.tar.bz2但是出现错误: 焦油:懦弱地拒绝创build一个空的档案
我有一个简单的function,在一个bash脚本,我想输出stdout作为input。 jc_hms(){ printf "$1" } 我想以这种方式使用它。 var=`echo "teststring" | jc_hms` 当然我用冗余函数echo和printf来简化问题,但是你明白了。 现在我得到一个“未find”的错误,我认为这意味着我的参数分隔是错误的(“$ 1”部分)。 有什么build议么? 最初的jc_hmsfunction是这样使用的: echo `jc_hms "teststring"` > //dev/tts/0 但我想将结果存储在一个variables中,以便进一步处理,然后再发送到串口。 编辑:所以澄清,我不是试图打印的东西串口,我想接口我的bash函数应该“|” pipe道字符,我想知道这是否可能。 编辑:好的,这是完整的function。 jc_hms(){ hr=$(($1 / 3600)) min=$(($1 / 60)) sec=$(($1 % 60)) printf "$hs:%02d:%02d" $min $sec } 我正在使用函数来形成一个string来代码的这一行 songplaytime=`echo $songtime | awk '{print S1 }'` printstring="`jc_hms $songplaytime`" #store resulting string in printstring 其中$ […]
我有一堆的.sql文件的目录,我的服务器上的每个数据库的mysql转储。 例如 database1-2011-01-15.sql database2-2011-01-15.sql … 实际上有相当多的 我需要创build一个shell脚本或单行可能会导入每个数据库。 我在Linux Debian机器上运行。 我认为有一些方法可以将ls的结果转化为一些find命令或其他东西。 任何帮助和教育是非常感激。 编辑 所以最终我想自动将一个文件一次导入到数据库中。 例如,如果我手动在一个它会这样做: mysql -u root -ppassword < database1-2011-01-15.sql
我想要做的是在“ 〜/ Labs / lab4a / ”位置( 〜/ Labs / lab4a /已经存在)创build一些文件夹。 说我想在lab4a文件夹中的folder1 , folder2 , folder3 。 这不是使用mkdir -p命令一次性完成嵌套的文件夹,或者进入lab4a并一次制作多个文件夹。 我想知道有没有更快的方式使用mkdir在相同的位置使用相对path创build多个文件夹。 即提示〜/: mkdir Labs / lab4a / folder1 folder2 folder3一次创buildlab4a中的所有文件夹。
从Django文档: 在安装Memcached之后,您需要安装一个memcached绑定。 有几个python memcached绑定可用; 两个最常见的是python-memcached和pylibmc。 pylibmc文档有他们自己的要求: -libmemcached 0.32 or later (last test with 0.51) -zlib (required for compression support) -libsasl2 (required for authentication support) 所以在我看来,我需要做到以下几点: -install memcached -install libmemcached -install zlib -install libsas12 -install pylibmc 我如何/在哪里可以做到这一点? 我已经习惯了只需要安装任何我需要的东西,但我什至不能告诉哪些是python包。 这些捆绑在一起吗?
在c中我们用这种方式logging: syslog( LOG_INFO, "proxying %s", url ); 在linux中我们如何检查日志?