标签: bash

使用 sed 修改和执行上一条命令

我有一堆 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)

这与我想运行的命令相呼应。但我实际上想运行它,而不仅仅是显示命令。

unix bash sed command-line

1
推荐指数
1
解决办法
721
查看次数

Bash shell 字符串连接

我正在尝试创建一个字符串并将其传递给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)

编辑:我想通了。我有一个错字。

bash bash-scripting

1
推荐指数
1
解决办法
416
查看次数

如何阻止 printf 在 shell 脚本中打印转义码?

当我使用以下代码运行一个简单的 shell 脚本时:

#!/bin/sh 
printf "\e[32m Hello World\n"
Run Code Online (Sandbox Code Playgroud)

我得到

\e[32m 你好世界

作为输出,而不是绿色的 Hello World 输出。

terminal bash shell-script bash-scripting

1
推荐指数
1
解决办法
707
查看次数

使用 bash 导航

我对在我的 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$”,但我不知道如何摆脱它。任何帮助都会很棒,谢谢

linux bash git mamp

1
推荐指数
1
解决办法
937
查看次数

PS1问题,cmd循环

我已设置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

bash command-line ps1

1
推荐指数
1
解决办法
334
查看次数

Linux:使用脚本将命令传递给 CLI

有什么方法可以直接将命令传递给工具的 CLI 吗?

我想编写一些操作的脚本,例如:

./OpenBTS < "tmsis"
Run Code Online (Sandbox Code Playgroud)

我不需要检索结果(我在日志文件中查看它)。你知道我怎么能意识到这一点吗?现在有办法使用命令行参数来做到这一点,至少不是我发现的。所以看起来我必须自己弄清楚。任何的想法?也许我可以通过某种方式自动执行 screen 来检测提示并将我的命令“粘贴”到那里。在 Linux 上有用于此的工具吗?

linux bash automation command-line

1
推荐指数
1
解决办法
559
查看次数

如何从命令行检查终端颜色功能?

我写的:

  $ 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 命令(如此高效)并且适用于我的所有情况,但不幸的是不能移植。

terminal bash colors bashrc

1
推荐指数
1
解决办法
4221
查看次数

打印没有行号的 Linux 命令行历史记录

如何在不包含行号的情况下打印 Linux 命令行历史记录?我想将其全部发送到这样的文本文件:

history >> history.txt
Run Code Online (Sandbox Code Playgroud)

bash shell

1
推荐指数
2
解决办法
2280
查看次数

将选项语法字符串作为文件名传递

我不知何故在目录中得到了一个名为 --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)

linux bash command-line cat command-line-arguments

1
推荐指数
1
解决办法
243
查看次数

如何在 SSH shell 中继承我的别名和文件颜色?

我注意到有时我通过 SSH 访问的 shell 帐户会从我的主 shell 继承别名和文件类型颜色。

这个过程是如何发生的?这些 shell 通常是 BASH,但我想这是所有 TTY 模拟器的共同点。

ssh bash shell tty

1
推荐指数
2
解决办法
1185
查看次数