3 bash - 找出两个变量之间的差异 我有两个变量:var1="1, 2, 3, 4"和var2="3, 4, 5, 6"。 我想获得一个新的,VAR3,包含之间的差异$var1和$var2。 预期的结果应该是var3=1, 2, 5, 6。 我试过diff但输出不是我想要的: diff <(echo "$var1") <(echo "$var2") 1c1 < 1, 2, 3, 4 --- > 3, 4, 5, 6 哪个其他解决方案允许我var3不创建任何文件? 1 bash string-manipulation
0 我可以用make创建别名吗? 是否可以make创建别名? 这是我试过的: Makefile文件 aliases: alias hello='echo world' alias holy='echo cow' 它不能按原样工作,大概是因为别名命令在shell的上下文之外运行。是否可以在上下文中执行它们?或以某种方式“导出”创建的别名? 如果没有,那么将别名批量放入主机的最佳选择是什么?(例如,作为回购中的附加组件。) 1 bash make bash-alias
0 Msys cd ..命令将我带到主目录而不是父目录 我在Windows 7上使用Msys,我认为它是一个Bash shell。 我想导航以下目录结构: Drive (M:) +--- Coding +--- CPP +--- projects +--- other_folder_1 +--- other_folder_2 我的fstab文件包含以下行: M:/Coding/CPP/projects/ /home/Adrian/ ...打开shell时,这使项目文件夹成为我的起始目录。 不幸的是,当我尝试cd ..出于项目时,我最终进入/ home而不是CPP。 我想这可能与我在fstab文件中所做的有关。有什么办法让我保留项目文件夹作为我的出发目录,同时能够CD到它的父目录? 1 windows bash msys
1 在后台运行进程 关于在后台启动流程我有2个问题: 为什么在后台启动进程是这样的: ./my_program & (my_program当然有exe权限集)不会像其他任何命令那样使bash打印命令提示符吗?它只是留下一个空的新行,闪烁的光标。 当我在后台运行下一个新进程bash显示...... 像那样: ./my_program & [30] 1439 [27] Done ./my_program [28] Done ./my_program [29] Done ./my_program 这是否意味着在后台启动另一个额外进程会使系统显示有关预览进程([27], [28], [29] 行)的信息,只要当前启动([30]行)? 1 linux bash
3 在bash中从zip存档中提取大量文件的更好方法 我有一个包含大量文件的zip存档和一个带有文件列表(~10000项)的纯文本文件,我需要使用bash从该存档中提取。 执行该操作的最佳方法是什么?显而易见的方法是为每行文件运行解压缩,但它看起来非常慢。 1 bash zip
2 使用符号的目录别名 我正在寻找为我的工作目录设置一个别名,它可以随着我改变上下文而改变,我试图找到一些足够短的东西作为替代品~。如果别名可以有一个字符名称,我会被粉红色。喜欢cd %什么?分配别名%似乎不起作用。 我已经尝试寻找变量名称的要求,但我找不到任何。我不知道这是不是内置的shell,我不可能是第一个想要这样做的人。 我正在使用zsh,但是我标记了bash,以防两个shell中都有可能。 1 linux bash zsh alias
1 Bash中的远程Subversion URL完成 有人在svn命令中添加了对远程URL的Bash完成支持吗?它通常可以通过解析调用来实现svn ls。 1 bash svn remote autocomplete url
5 如何在第二个管道后grep列 例: 3|100|test@test.com|0|0|6:1,10,11,12,13,2,3,4,5,6,9|7:1,10,11,13,16,2,4,5,6,9| grep后的预期视图: test@test.com 1 bash sed awk grep cut
0 cygwin + tmux和多个bash进程 我安装了cygwin和tmux。每次我运行一个终端,我也运行tmux然后启动weechat。当我不得不离开时,我只是关闭终端窗口并且tmux继续在后台运行......到目前为止一切都很好。 问题是,每次我再次打开一个终端并连接到tmux会话时,都会产生一个新的bash进程,所以如果我关闭我的终端并多次连接我的tmux会话,我会在任务管理器中获得几个bash进程。 我做错了什么或者它应该如何运作?谢谢 编辑:在关闭终端窗口之前分离TMUX修复了我的问题。 这是我在TMUX仍然连接时关闭终端时看到的: 1 bash terminal cygwin tmux
1 如何以特权方式运行Cygwin命令(不是Windows本机命令)? 如果我在CygWin中打开(通过UAC提升)Bash Shell: Luis@Kenobi /cygdrive/c/Windows/system32 $ crontab.exe -l -u Luisito must be privileged to use -u 在WinXP-SP3和Win7-SP1上测试过。远程(SSH)控制台上的结果相同。两个帐户(Luis和Luisito)都属于管理员。 我如何使用crontab列出其他用户的crontab列表? 附加要点: 用户SYSTEM测试: 我有这个名为MyShell.cmd的文件: c:\CygWin\bin\bash.exe --login -i 所以我从(由UAC提升,当然)PSExec来获取系统权限: psexec -i -s d:\MyShell.cmd 我得到一个新的shell尝试,但问题仍然存在: SYSTEM@Kenobi /cygdrive/c/Windows/system32 $ whoami.exe SYSTEM SYSTEM@Kenobi /cygdrive/c/Windows/system32 $ crontab.exe -l -u Luisito must be privileged to use -u 1 windows bash cygwin cron uac
2 取消链接(删除)目录符号链接 我做了: ln -s /DATA/ ./base_DATA/ 我想取消联系。只是: unlink ./base_DATA 但... unlink: cannot unlink './base_DATA': Is a directory 根据这个答案(以及许多其他在线),问题通常是unlink命令中的尾随空格。但无论如何我都会得到这个错误 任何想法如何解决这个问题? 1 linux bash symbolic-link rm ln
1 为什么scp不能从文件中生成stdin? 我正在尝试scp从passwd使用命令调用的文件中自动输入密码 scp folder/ user@server.com:./ < passwd 但它不起作用。 我知道我们可以使用无密码SSH作为替代方案,但我正在寻找解释为什么这不起作用。 1 linux bash
1 如何通过/ bin / time处理引用的args 我正在计算表单中的自定义二进制文件: ./prog --opt1=arg1 --opt2=arg2 --opt3="arg3" 要求第三个选项具有引用参数。在脚本中,我保存了所有选项: exec=./prog opts="--opt1=arg1 --opt2=arg2 --opt3=\"arg3\"" 当我尝试计算程序时,我的程序解析args时出错了。我猜它是因为它看到最后一个arg没有被引用。输出/bin/time: \bin\time -v $exec $opts Error parsing args (来自我的节目) Command being timed: "./prog --opt1=arg1 --opt2=arg2 --opt3="arg3"" 但是,当我只是复制和粘贴时,它声称命令是什么,它运行良好: ./prog --opt1=arg1 --opt2=arg2 --opt3="arg3" - 很好 是什么/bin/time做什么,我怎么能解决这个问题?我猜它与引号有关,比如它可能运行eval或者其他东西。我不知道该怎么办。 1 linux bash
1 如何在bash中拆分和重新组合stdout管道? 我正在解析命令行上的文本。如何获取一个命令的输出并在下一个命令中的两个位置使用它? some_command | head -n $( awk '/search_term/ {print FNR} output_of_some_command ) output_of_some_command 我截断的输出some_command使用head,但我需要搜索的输出some_command(使用awk在这种情况下)以查找在其截断的行号。 我可以这样做,还是需要写入临时文件? 1 command-line bash pipe stdout