Questions tagged «bash»

与其他Bourne / POSIX shell相对,GNU的Bourne Again SHell特有的问题。对于一般关于Unix shell的问题,请改用/ shell标记。

3
在名称前不带./的脚本
我正在运行一个非常复杂的脚本,该脚本会更改目录并运行许多其他命令。所有这些命令都使用'scriptname'运行,当我从终端执行主脚本时,该命令运行良好。但是,有时我不得不ssh进入服务器并从那里运行主脚本,由于每条命令前都没有./,所以它会失败。 我不想遍历所有脚本和可执行文件,并在命令中添加./,所以还有另一种方法可以解决此问题?


2
同一用户的多个虚拟配置文件
很多时候,一个用户使用多个“身份”:工作,开源,学术界等,所有这些都需要不同的ssh密钥,编辑器配置,git config等。 我想知道是否有任何工具可以在具有相同UNIX用户的“虚拟配置文件”之间进行切换。最好可以使您也具有不同的默认二进制文件/库(例如,在一个配置文件中,“ python”将运行python2.7,而在另一个配置文件中将运行python3)。 我知道可以使用环境变量,别名和链接文件的组合来设置它,但是我想知道是否有更干净的选择,例如python提供的virtualenv。

1
根据日期/时间从目录子集中复制文件
我正在教一个班级,其中(〜80)个学生正在提交可以通过webdav访问的作业,该作业由学生组织在由其唯一标识符命名的目录中。 这些学生分为两组,分别在一周的不同日期提交作业。我想创建一个bash脚本,以将每个学生子集的文件自动下载到本地目录中。 我不知道该怎么办的是以下内容: 通过名称选择文件夹的特定子集以从中复制文件。 根据评论进行编辑:我连接的webdav服务器有80个由学生命名的目录,这80个目录由两组学生组成。 我想从每个组的目录中选择文件,即Group1包含目录StudentA/ StudentC/ StudentD/。第2组将包含目录StudentB/ StudentE/ StudentF/。 指定要复制的文件的开始日期/时间。结束日期/时间对我很有用,因为我扣除了以后的作业。 在这些方面的任何帮助将不胜感激。

4
所有子流程均为Bash(!),
我尝试使用GDB,发现无论何时尝试生成我正在调试的程序,都会生成Bash(GDB会说starting myProg...,然后Bash出现。当我杀死Bash时,我会回到GDB中,会告诉我Bash的退出状态)。最初,我认为这是GDB的一个奇怪问题,但是后来我发现,尝试从Vim生成进程也只是生成了Bash。 经过一阵奇怪的启发,我将此问题与我的默认外壳程序是Tcsh联系了起来,并且由于不允许更改它,我只需将我的contains设置.tcshrc为exec bash。当我将其更改为bash或仅使用Tcsh时,问题消失了。 我对Tcsh的问题如何导致我的问题完全不了解。有人可以提供吗? 顺便说一句,我能够通过运行GDB PATH="" /usr/bin/gdb而不是just 获得临时修复gdb。它吐出bash: command not found,然后继续生成我要调试的程序。
1 bash  shell  tcsh  exec 

3
如何在shell中表达换行?
我是debian7.8 bash shell。 str="deb http://ftp.cn.debian.org/debian/ wheezy main contrib non-free \n deb-src http://ftp.cn.debian.org/debian/ wheezy main contrib non-free " echo $str > test 在我的测试文件中是: deb http://ftp.cn.debian.org/debian/ wheezy main contrib non-free \n deb-src http://ftp.cn.debian.org/debian/ wheezy main contrib non-free 我想要的是: deb http://ftp.cn.debian.org/debian/ wheezy main contrib non-free deb-src http://ftp.cn.debian.org/debian/ wheezy main contrib non-free 如何正确表达换行符?
1 bash  shell  quoting 

1
如何从外部ini文件向变量添加关联数组?
我正在修改一个简单的脚本以添加功能,并详细了解如何编写bash脚本。当前,该脚本使用以下函数创建关联数组: declare -A site theme add_site() { local shortcut=$1 site[$shortcut]=$2 theme[$shortcut]=$3 } add_site x1 example1.com alpha add_site x2 example2.com beta 现在,我希望它读取变量的ini文件。但是,我遇到的所有文档都说明了如何获取文件,但是仅使用单个数组作为示例。如何使用类似于以下内容的数据文件创建数组以创建关联数组: [site1] shortcut=x1 site=example1.com theme=alpha [site2] shortcut=x2 site=example2.com theme=beta
1 bash  array 

1
将用户输入读入数组,直到用户输入特定条目
我需要创建一个bash,从用户那里获取输入并将它们插入到数组中,直到用户输入特定内容为止。例如,如果我运行脚本: enter variables: 3 4 7 8 ok 我得到这个数组: array=( 2 4 7 8 ) 要么: enter variables: 15 9 0 24 36 8 1 ok 我得到这个数组: array=( 15 9 0 24 36 8 1 ) 我怎样才能做到这一点?

1
流程停止的原因?
我正在使用批处理文件运行程序,并且该程序不断出现此错误: 停止的过程 我注意到该程序每次都在他上次执行它停止的地方之后的某个地方停止 现在,我正在寻找“已停止”流程的原因,否则,如果有人遇到相同的问题,它将变得更好! 谢谢。

1
Bash并行进程是否已关闭系统?
我有一台远程控制服务器,可用来自动执行命令/脚本等到串联的所有节点。为了提高性能和速度,我想并行运行它。我大约在180个节点中执行命令。在系列赛中,我大约需要2个小时才能完成所有任务的执行。所以我目前正在寻找速度。伪代码如下所示,我使用based64将命令发送到其他节点。我可以使用它执行任何任意复杂的命令。 for host in ${sshconfig[@]}; do ssh "$host" "echo $COMMAND | base64 -d | bash" & done 但是我忘了有很多节点,所以我犯了一个错误,所以我的bash脚本为每个节点创建了许多进程,结果,控制服务器的系统崩溃了,它已经关闭。现在,我无法再连接到它了。 我想知道,如何在bash脚本中分配内存?简便的操作ssh使bash非常适合我的情况,但是我想知道如何通过并行执行bash来提高性能,而又不必担心系统崩溃等问题。
bash  ubuntu  ssh  memory  c 
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.