当我做一些像man bindkey这样的东西时,我感到很沮丧, man bindkey我得到: BUILTIN(1)BSD通用命令手册BUILTIN(1) 名称 内置的,!,%,。,:,@,{,},别名,分配,bg,绑定,绑定,break,breakw,builtins,case,cd,chdir,命令, 完成,继续,默认,dirs,做,完成,回声,echotc,elif,其他,end,endif,endsw,esac,eval,exec,退出, export,false,fc,fg,filetest,fi,for,foreach,getopts,glob,goto,hash,hashstat,history,hup,if,jobid, 作业,杀死,限制,本地,日志,login,注销,ls-F,很好,nohup,通知,onintr,popd,printenv,pushd,pwd,阅读, readonly,rehash,repeat,return,sched,set,setenv,settc,setty,setvar,shift,source,stop,suspend,switch, telltc,test,then,time,times,trap,true,type,ulimit,umask,unalias,uncomplete,unhash,unlimit,unset, 直到等待,在哪里,哪一个,而 – shell内置的命令 概要 内build[-options] [args …] 描述 Shell内置命令是可以在运行中的shell进程中执行的命令。 请注意,在 有没有简单的方法来访问这些命令的文档?
在一个Bash脚本中,我想要做一些事情: app1 & pidApp1=$! app2 & pidApp2=$1 timeout 60 wait $pidApp1 $pidApp2 kill -9 $pidApp1 $pidApp2 也就是说,在后台启动两个应用程序,并给他们60秒完成他们的工作。 那么,如果他们没有在这段时间内完成,杀死他们。 不幸的是,上述不起作用,因为timeout是一个可执行文件,而wait是一个shell命令。 我试图改变它: timeout 60 bash -c wait $pidApp1 $pidApp2 但是这仍然不起作用,因为只能在同一个shell中启动的PID上调用wait 。 有任何想法吗?
我开始一个bash脚本,它将在S3(如ls命令所指定的那样)中取path并将所有文件对象的内容转储到stdout 。 本质上我想复制cat /path/to/files/*除了S3,例如s3cat '/bucket/path/to/files/*' 。 我的第一个倾向看选项是使用cp命令临时文件,然后cat 。 有没有人试过这个或类似的,或者是有一个命令,我不知道这是什么?
当我在bash中使用“trap”命令时,给定信号的前一个陷阱被replace。 对于同一个信号有没有办法让一个以上的陷阱发生?
试图更进一步,这怎么能在一个标准的bash shell中工作: git commit -m 'cracked enigma's code' 这是否可以简单地通过反斜杠转义来完成,如下所示: git commit -m 'cracked enigma\'s code' 此外,如何使用双引号? 还通过反斜杠逃脱? 这是最好的方法吗? 有没有好的替代方法? git commit -m 'cracked the "real" enigma's code'
在Mac OS 10.10.3中,我通过input以下命令安装了gnu-sed: brew install gnu-sed –default-names 当我再次input时,我收到消息: gnu-sed-4.2.2已经安装好了 但是,即使重新启动系统并重新启动terminal后,我仍然无法使用sed的GNU版本。 例如: echo a | sed 's_A_X_i' 返回:replace命令'i'中的坏标志 我应该怎么做才能使GNU版本工作? 这里是我的$ PATHvariables的path。 /Users/WN/-myUnix /opt/local/bin /opt/local/sbin /usr/bin /bin /usr/sbin /sbin /usr/local/bin /Applications/calibre.app/Contents/MacOS /opt/ImageMagick/bin /usr/texbin 对不起,如果我的问题似乎很明显,但我自己学习shell脚本,并不太了解如何安装UNIX程序。 任何帮助,在我的Mac上使用GNU兼容命令(在这种情况下sed,但很快我会需要其他人),而不会造成损坏或不必要的混乱,将不胜感激。
我想devise一个shell脚本作为几个脚本的包装。 我想使用getopts为myshell.sh指定参数, myshell.sh其余参数以相同的顺序传递给指定的脚本。 如果执行myshell.sh ,如下所示: myshell.sh -h hostname -s test.sh -d waittime param1 param2 param3 myshell.sh param1 param2 -h hostname param3 -d waittime -s test.sh myshell.sh param1 -h hostname -d waittime -s test.sh param2 param3 以上所有应该可以称为 test.sh param1 param2 param3 是否可以利用 myshell.sh 的选项参数 并将其余参数发布到底层脚本中?
我已经做了一些在OS X(10.5.7)terminal打破我的Bash Shell提示。 这是我configuration的PS1: PS1='\[\e[1;32m\]\h\[\e[0m\]:\[\e[1;34m\]\w\[\e[0m\]\$ ' 据我可以告诉我有颜色命令正确逃脱。 但是,当我在命令历史中上下滚动时,如果历史命令换行到多行,经常会遇到换行问题。 我将提示简化为以下内容: PS1='\[\e[1m\]\h:\w\$ \[\e[0m\]' PS2='> ' 而且我仍然看到像这样的东西: localhost:〜/ Library / Application Support / Firefox / Profiles / knpmxpup.Defau lt / extensions / {1A2D0EC4-75F5-4c91-89C4-3656F6E44B68} $ expocd \ {1A2D0EC4-7 5F5-4c91-89C4-3656F6E export PS1 =“\ [ \ e [1; 32m \] \ h \ [\ e [0m \]:cd Library / Appl 支持/支持/ […]
我更新了我的Bash到MacPorts的3.2.48失败。 看来我没有积极性,因为我得到了 echo $BASH_VERSION 3.2.17(1)-release 你怎么能使最新的Bash活动 ,以便我得到它的login壳?
我试图得到一个简单的while循环在bash中使用两个条件,但在尝试从各种论坛的许多不同的语法后,我不能停止抛出一个错误。 这是我有什么: while [ $stats -gt 300 ] -o [ $stats -eq 0 ] 我也试过了: while [[ $stats -gt 300 ] || [ $stats -eq 0 ]] …以及其他几个构造。 我希望这个循环继续,而$stats is > 300或$stats = 0 。