如何在 Mac OS X 中任意更改终端窗口的标题?我见过这个问题和这个magicwrap 东西,但认为它只是一个简单的 Mac OS X 命令。
我自己写了一个program需要正则表达式作为输入的 linux 程序。
我想在bashshell 中调用程序并将该正则表达式作为命令行参数传递给程序(还有其他命令行参数)。一个典型的正则表达式看起来像
[abc]\_[x|y]
Run Code Online (Sandbox Code Playgroud)
不幸的是,字符[,]和|是bash. 因此,调用
program [abc]\_[x|y] anotheragument
Run Code Online (Sandbox Code Playgroud)
不起作用。有没有办法通过使用某种转义字符或引号等来传递表达式?
(调用program "[abc]\_[x|y] anotheragument"也不起作用,因为它将两个参数解释为一个。)
我有一个文件列表,文件中以空格分隔list.txt。我想将它们复制到一个新文件夹中。
我试图做:
cp `cat list.txt` new_folder
Run Code Online (Sandbox Code Playgroud)
但它没有用。
你会怎么做?
更新:
感谢您提供所有非常有趣的答案。我没有要求那么多:)
第二次尝试上述解决方案后,似乎cp打印了使用帮助,因为该文件夹new_folder尚不存在!对不起,这似乎是一个愚蠢的错误......当我之前创建文件夹时,它可以工作。
但是,我从您的所有答案和解决方案中学到了很多东西,感谢您抽出宝贵的时间来编写它们。
每当某些命令生成长行作为输出时(例如,当ls -l文件夹包含具有长名称的文件时),长行会换行到下一行,从而弄乱列结构。
有没有办法避免这种情况?类似于'nowrap' vim 选项的东西?
更新
我注意到接受的答案有一个问题:
如果我创建一个别名,例如:alias ll="tput rmam; ls -l; tput smam"
然后尝试 grep 它的输出:ll | grep foo
它仍然会打印所有文件,就像没有 grep 一样。
我找到的解决方案是在整个别名周围加上括号:
alias ll="(tput rmam; ls -l; tput smam)"
我想知道,是否可以在 bash 中进行简单的数学运算?我在想这样的事情,=25-5 会打印出 20 或其他东西。
这可以轻松完成吗?
谢谢
有没有办法让 bash 在反引号替换中不吃换行符?
例如:
var=`echo line one && echo line two`
echo $var
line one line two
Run Code Online (Sandbox Code Playgroud)
我想要的是
var=`echo line one && echo line two` # plus some magic
echo $var
line one
line two
Run Code Online (Sandbox Code Playgroud) 如何将文件的时间信息设置为与 OSX/Linux 上的另一个文件的时间信息相同?
有时当我想切换到父目录时,我错误地键入cd ,,而不是cd ... 有没有办法让 bash 认为这些语句是相同的?我从不在我的命令中使用逗号。理想情况下,我想别名,,为... 当我尝试这个时,它不起作用。为什么这不起作用?我还能如何解决这个问题?
$ alias ,,=..
$ cd ,,
-bash: cd: ,,: No such file or directory
Run Code Online (Sandbox Code Playgroud)