我想代表像这样的多个条件: if [ ( $g -eq 1 -a "$c" = "123" ) -o ( $g -eq 2 -a "$c" = "456" ) ] then echo abc; else echo efg; fi 但是当我执行脚本时,它显示 syntax error at line 15: `[' unexpected, 第15行是显示如果…. 这种情况怎么了? 我猜()有些问题。
什么是最快最实用的方法,将目录中的所有* .txt文件合并为一个大文本文件? 目前我使用cygwin的窗口,所以我有权访问BASH。 Windows的shell命令也不错,但我怀疑有一个。
看起来ls在进行recursion调用时不能正确sorting文件: ls -altR . | head -n 3 如何find目录中最近修改的文件(包括子目录)?
假设我有string1:2:3:4:5 ,我想获得它的最后一个字段(在这种情况下是5 )。 我如何使用Bash做到这一点? 我试过cut ,但我不知道如何用-f指定最后一个字段。
Mac OS X中的默认shell是bash ,我一般很乐意使用它。 我只是认为理所当然。 如果它自动完成更多的东西 ,那将是非常好的,而且我在这方面已经听到了有关zsh好消息。 但是我并没有真正的意图花费数小时来摆弄设置来改善我的命令行使用率,因为我在命令行中的生活并不是那么糟糕。 (据我所知, bash也可以configuration为自动完成更聪明的configuration,我并不是那么热衷)。 将切换到zsh ,即使在less数情况下,使我的生活更轻松? 或者,如果你花时间学习为什么它更好,它只是一个更好的壳? (例子也不错:) ) @ Rodney Amato &@ Vulcan Eager给出了两个很好的理由分别坚持bash和切换到zsh 。 看起来我必须同时调查! 哦,好:) 有没有人有争论双方的意见?
当我grep我的Subversion的工作副本目录,结果包括从.svn目录很多文件。 是否可以recursion地grep一个目录,但从.svn目录中排除所有结果?
我正在尝试编写一个在远程服务器上创build一些目录的shell脚本,然后使用scp将文件从本地计算机复制到远程计算机上。 以下是我到目前为止: ssh -t user@server<<EOT DEP_ROOT='/home/matthewr/releases' datestamp=$(date +%Y%m%d%H%M%S) REL_DIR=$DEP_ROOT"/"$datestamp if [ ! -d "$DEP_ROOT" ]; then echo "creating the root directory" mkdir $DEP_ROOT fi mkdir $REL_DIR exit EOT scp ./dir1 user@server:$REL_DIR scp ./dir2 user@server:$REL_DIR 每当我运行它,我得到这个消息: Pseudo-terminal will not be allocated because stdin is not a terminal. 剧本永远挂起。 我的公钥在服务器上是可信的,我可以运行脚本以外的所有命令。 有任何想法吗?
我正在寻找在Mac OSX上复制Linux“watch”命令的最佳方法。 我希望每隔几秒钟运行一次命令来使用'tail'和'sed'对输出文件的内容进行模式匹配。 在Mac上我的最佳select是什么,可以在没有下载软件的情况下完成?
Bash有没有办法回想起前一个命令的论点? 我通常做vi file.c然后是gcc file.c Bash有没有办法回想起前一个命令的论点?
我知道Esc + 。 给你最后一个命令的最后一个参数。 但是我对最后一个命令的第一个参数很感兴趣。 有没有一个关键的约束力呢? 同样的道理,从最后的命令中获得第n个参数是否有一个通用的方法呢? 我知道在bash脚本中,可以使用$0 , $1等,但这些命令行不起作用。 另外,迭代前一个命令的第0个参数,就像我们通过连续按下Esc +所做的最后一个参数一样。 ?