我正在查找与在Bash中的逐句情况(理想情况下不区分大小写)switch语句正确的语法。 在PHP中,我会编程它: switch($c) { case 1: do_this(); break; case 2: case 3: do_what_you_are_supposed_to_do(); break; default: do_nothing(); } 我想在Bash中一样: case "$C" in "1") do_this() ;; "2") "3") do_what_you_are_supposed_to_do() ;; *) do_nothing(); ;; esac 这种方式不起作用:当$ C是2或3时,函数do_what_you_are_supposed_to_do()应该被触发。
我想大写,只是我的string中的第一个字符与bash。 foo="bar"; //uppercase first character echo $foo; 应打印“酒吧”;
我正在阅读关于if示例,但是一些示例是用单个方括号写的: if [ -f $param ] then #… fi 其他与双方括号: if [[ $? -ne 0 ]] then start looking for errors in yourlog fi 有什么区别?
如果我有这样一个BASH脚本: #/bin/bash f() { # echo function name, "f" in this case } 有没有办法做到这一点? 这可以用于帮助消息,如 printf "Usage: %s: blah blah blah \n" $(basename $0) >&2; 只有在这种情况下我想要的不是$0 ,这是脚本的文件名。
当我们的服务器出现时,我们需要检查一个文件来查看服务器是如何configuration的。 我们要在我们的/etc/aws/hosts.conf文件中search下面的string: MYSQL_ROLE=master 然后,我们要testing该string是否存在,并根据string是否存在使用if / else语句来运行两个选项之一。 if语句的BASH语法是什么? if [ ????? ]; then #do one thing else #do another thing fi
我需要循环遍历一个目录recursion和删除所有文件的扩展名为.pdf和.doc,我pipe理循环通过目录recursion,但不pipe理上述文件扩展名过滤文件。 我的代码到目前为止 #/bin/sh SEARCH_FOLDER="/tmp/*" for f in $SEARCH_FOLDER do if [ -d "$f" ] then for ff in $f/* do echo "Processing $ff" done else echo "Processing file $f" fi done 我需要帮助来完成代码,因为我没有得到任何地方。
我写了一个模糊的testing,不可靠地失败。 我添加了一些debugging代码,但现在我想运行testing,直到失败,所以我可以收集debugging输出。 我已经安装了testing,所以我可以运行它使用: ./runtest 我目前的解决scheme是写一个untilfail脚本: #!/bin/bash $@ while [ $? -eq 0 ]; do $@ done 然后使用它: untilfail ./runtest 有一个更简单的解决scheme?
在我的Bash脚本中的以下行 echo $AAAA" "$DDDD" "$MOL_TAG >> ${OUPUT_RESULTS} 给我这个错误: line 46: ${OUPUT_RESULTS}: ambiguous redirect 为什么?
我想写一个简单的脚本,将列出两个列表中find的内容。 为了简化,我们以ls为例。 想象一下,“一”和“二”是目录。 一个='一个' 两个=“两个” 十字路口$一两美元 在bash中我仍然很绿,所以请随时纠正我的做法。 我只需要一些命令来打印出“一”和“二”的所有文件。 它们必须存在于两者中。 你可以称之为“一”和“二”之间的“交集”。
我有一个脚本,检查0大小,但我认为必须有一个更简单的方法来检查文件大小。 即file.txt通常是100K; 如何使脚本检查它是否小于90k(包括0),并使它做一个新的副本,因为在这种情况下文件已损坏。 我目前使用的是什么 if [ -n file.txt ] then echo "everything is good" else mail -s "file.txt size is zero, please fix. " myemail@gmail.com < /dev/null # Grab wget as a fallback wget -c https://www.server.org/file.txt -P /root/tmp –output-document=/root/tmp/file.txt mv -f /root/tmp/file.txt /var/www/file.txt fi