在Bash中模拟一个do-while循环的最好方法是什么? 我可以在进入while循环之前检查条件,然后继续重新检查循环中的条件,但这是重复的代码。 有更清洁的方法吗? 我的脚本的伪代码: while [ current_time <= $cutoff ]; do check_if_file_present #do other stuff done 如果在$cutoff时间之后启动,则不会执行check_if_file_present ,而且会执行do-while。
我想写一个bash脚本,它采用不同的参数。 它应该像普通的Linux控制台程序一样使用: my_bash_script -p 2 -l 5 -t 20 所以值2应该被保存在一个名为pages的variables中,并且参数l应该被保存在一个名为length的variables中,值20应该被保存在一个可变的时间中。 做这个的最好方式是什么?
我想在bash脚本中使用time命令来计算脚本的运行时间并将其写入日志文件。 我只需要真正的时间 ,而不是用户和系统。 也需要一个体面的格式。 例如00:00:00:00(不像标准输出)。 我感谢任何build议。 预期的格式应该是00:00:00.0000 (毫秒)[小时]:[分钟]:[秒]。[毫秒] 我已经有3个脚本。 我看到了这样一个例子: { time { # section code goes here } } 2> timing.log 但是我只需要真正的时间,而不是用户和系统。 也需要一个体面的格式。 例如00:00:00:00 (不像标准输出)。 换句话说,我想知道如何把时间输出变成更容易处理的东西。
我每天都通过ssh连接到服务器。 我经历这个例程: IC001:Desktop user$ ssh user@my.server.com user@my.server.com's password: Last login: Tue Jun 4 10:09:01 2013 from 0.0.0.0 $ 我想自动化这个过程,并创build一个bash脚本来为我做。 我不关心安全性,并且可以在脚本中公开存储我的密码。 我也可以在脚本执行的时候在屏幕上公开地input。 所以我创造了这个: #!/bin/bash ssh user@my.server.com echo mypassword 但它不起作用。 我也试过send而不是echo ,但它也没有工作。 请告知是否可以做。
是否有一个相当于Python pass的Bash?
我是新来的混帐,我试图将当前的git分支添加到我已经存在的提示,其定义如下: RESET="\[\017\]" NORMAL="\[\033[0m\]" RED="\[\033[31;1m\]" YELLOW="\[\033[33;1m\]" WHITE="\[\033[37;1m\]" SMILEY="${WHITE}:)${NORMAL}" FROWNY="${RED}:(${NORMAL}" SELECT="if [ \$? = 0 ]; then echo \"${SMILEY}\"; else echo \"${FROWNY}\"; fi" export PS1="${RESET}${YELLOW}\u@\h${NORMAL} \`${SELECT}\` ${YELLOW}\w $(__git_ps1) >${NORMAL} " 我试了一下(通过再次采购我的.bashrc文件),它似乎工作,但后来我去了另一个分支,它没有更新。 我怎样才能确保$(__git_ps1)没有被caching?
当我在我的shell中运行命令如下,它返回一个expr: non-integer argument错误。 有人可以向我解释这个吗? $ x=20 $ y=5 $ expr x / y expr: non-integer argument
我正在寻找像下面这样的基本循环: for(int i = 0; i < MAX; i++) { doSomething(i); } 但为bash。
我试图输出一个string,其中包含一个string的两个单词之间的所有内容: input: "Here is a String" 输出: "is a" 使用: sed -n '/Here/,/String/p' 包括端点,但我不想包括它们。
我想实现一个进度条,显示在bash中经过的秒数。 为此,我需要清除屏幕上显示的最后一行(命令“清除”将擦除所有屏幕,但是我只需要删除进度条的行并用新信息replace它)。 最终结果应该如下所示: $ Elapsed time 5 seconds 然后10秒钟后,我想要replace这个句子(在屏幕上的相同位置): $ Elapsed time 15 seconds