我有一堆 pdf 文件,它们与一个位于目录中的很长的命令行相连。有些是英语,有些是法语,用_e.pdf和区分_f.pdf。
因为它们以特定顺序加入,命令行不能缩短,但我想修改并重新执行它,只需替换_e为_f. 我该如何使用sed(或其他)?
假设命令是
pdfjoin file1_e.pdf file2_e.pdf file3_e.pdf
Run Code Online (Sandbox Code Playgroud)
在历史上它是命令 10。
我已经到了
echo !10 | sed 's/_e.pdf/_f.pdf/g'
Run Code Online (Sandbox Code Playgroud)
这与我想运行的命令相呼应。但我实际上想运行它,而不仅仅是显示命令。
我正在尝试创建一个字符串并将其传递给rm,但我在使其工作时遇到了一些困难。我想删除MY_PATH. 以下是我尝试过的。
MY_PATH=/my/directory/
echo ${MY_PATH}'*' # This works as expected.
rm -vfr ${MY_PATH}'*' # This doesn't.
Run Code Online (Sandbox Code Playgroud)
编辑:我想通了。我有一个错字。
当我使用以下代码运行一个简单的 shell 脚本时:
#!/bin/sh
printf "\e[32m Hello World\n"
Run Code Online (Sandbox Code Playgroud)
我得到
\e[32m 你好世界
作为输出,而不是绿色的 Hello World 输出。
我对在我的 macbook pro 上使用终端非常陌生,并试图了解如何使用它导航到某些目录。我似乎无法离开我的用户名目录。我正在尝试访问 MAMP/htdocs 并将这些文件放入我的 git 存储库中。我对这一切都很陌生。
我正在打字并得到这个
David-Adamss-MacBook-Pro:~ davidadams$ cd Applications/MAMP/htdocs/barcodes
-bash: cd: Applications/MAMP/htdocs/barcodes: No such file or directory
Run Code Online (Sandbox Code Playgroud)
我需要从那条线中取出“davidadams$”,但我不知道如何摆脱它。任何帮助都会很棒,谢谢
我已设置PS1为以下值:
PS1="\033[0;37m[\033[1;33m\w\033[0;37m]\n\t \[[34m\]\u\033[0;37m@\[[34m\]\[[1m\]\h\[(B[m\] $"
Run Code Online (Sandbox Code Playgroud)
问题是任何跨越一行以上的命令都会循环并且不会生成新行。所以我覆盖了我已经输入的行。有什么问题PS1?
有什么方法可以直接将命令传递给工具的 CLI 吗?
我想编写一些操作的脚本,例如:
./OpenBTS < "tmsis"
Run Code Online (Sandbox Code Playgroud)
我不需要检索结果(我在日志文件中查看它)。你知道我怎么能意识到这一点吗?现在有办法使用命令行参数来做到这一点,至少不是我发现的。所以看起来我必须自己弄清楚。任何的想法?也许我可以通过某种方式自动执行 screen 来检测提示并将我的命令“粘贴”到那里。在 Linux 上有用于此的工具吗?
我写的:
$ infocmp -1 xterm
...
颜色#8,
粗体=\E[1m,
闪烁=\E[5m,
...
$ tput -Txterm 颜色 && echo OK || 回声错误
8
好的
$ tput -Txterm 闪烁 && 回声 OK || 回声错误
^[[5mOK
所以我可以使用tput来检查视网膜功能。
这个soution是便携式的吗?还有其他解决方案吗?
或者我可以坚持解决方案:
$ [ $TERM = xterm ] && echo ok || 回声错误 好的
一种用途是在 .bashrc 中设置 PS1。另一个用于突出显示输出以引起 sh 脚本的注意。我可以使用这样的解决方案:
PS1='bash#' 案例“$TERM”在 xterm*) PS1='\[\033[35m\]bash# \[\033[0m\]' ;; esac
它只使用内置的 bash 命令(如此高效)并且适用于我的所有情况,但不幸的是不能移植。
如何在不包含行号的情况下打印 Linux 命令行历史记录?我想将其全部发送到这样的文本文件:
history >> history.txt
Run Code Online (Sandbox Code Playgroud) 我不知何故在目录中得到了一个名为 --no-recursion 的文件。我怎样才能cat显示它包含的内容?不是这样,因为参数被解释为一个选项:
root@nagini [/home/lalilulelo]# cat --no-recursion
cat: unrecognized option `--no-recursion'
Try `cat --help' for more information.
root@nagini [/home/lalilulelo]# cat \--no-recursion
cat: unrecognized option `--no-recursion'
Try `cat --help' for more information.
root@nagini [/home/lalilulelo]# cat \\--no-recursion
cat: \--no-recursion: No such file or directory
Run Code Online (Sandbox Code Playgroud) 我注意到有时我通过 SSH 访问的 shell 帐户会从我的主 shell 继承别名和文件类型颜色。
这个过程是如何发生的?这些 shell 通常是 BASH,但我想这是所有 TTY 模拟器的共同点。