相关疑难解决方法(0)

如何为read命令添加换行符?

 read -p "Please Enter a Message:" message
Run Code Online (Sandbox Code Playgroud)

我怎样才能在之后添加换行符Message:

unix bash shell

47
推荐指数
5
解决办法
5万
查看次数

如何用参数创建bash别名?

我通常ps -elf | grep proceesname用来获得名为的进程的详细描述processname.我认为我必须为此写太多.

现在我想的是创建一个像bash一样的别名

alias lsps='ps -elf | grep $1'
Run Code Online (Sandbox Code Playgroud)

这将仅通过使用给出以上详细描述lsps processname.

所以,我的问题是如何创建一个接受参数的bash别名.

PS:我知道我可以为上述任务编写一个shell脚本,但我只是想知道如何用bash别名来做.

bash

34
推荐指数
2
解决办法
3万
查看次数

如何将bash别名定义为多个命令的序列?

我知道如何在bash中配置别名,但有没有办法为一系列命令配置别名?

即我想要一个命令更改为特定目录,然后运行另一个命令.

另外,有没有办法设置运行"sudo mycommand"的命令,然后输入密码?在MS-DOS时代,我一直在寻找一个.bat文件但是我不确定linux(或者说在这种情况下是Mac OSX)的等价物.

linux macos bash alias

32
推荐指数
6
解决办法
5万
查看次数

如何在参数位于中间的位置创建别名?

我正在尝试定义一个别名,其中参数插入到中间,而不是附加到末尾.

我尝试像这样定义它:

alias grep_logs="grep $1 */log/*.log"
Run Code Online (Sandbox Code Playgroud)

其中$ 1是grep_logs的第一个参数,例如:

grep_logs foo
Run Code Online (Sandbox Code Playgroud)

将执行以下命令:

grep foo */log/*.log
Run Code Online (Sandbox Code Playgroud)

但相反,它运行命令:

grep foo */log/*.log foo
Run Code Online (Sandbox Code Playgroud)

这导致错误:

grep: foo: No such file or directory
Run Code Online (Sandbox Code Playgroud)

是否可以使用别名来执行此操作,还是需要定义函数?

unix bash shell alias sh

31
推荐指数
3
解决办法
1万
查看次数

使用银色搜索器搜索文件和文件名

使用Silver Searcher,我该如何搜索:

  1. 带有单词或模式AND的(非二进制)文件
  2. 所有文件名,包含包含二进制文件文件名的单词或模式.

其他偏好:希望通过dotfiles进行不区分大小写的搜索和搜索.


尝试使用这个别名没有太多运气:

alias search="ag -g $1 --smart-case --hidden && ag --smart-case --hidden $1"

terminal command-line grep command-line-interface ack

23
推荐指数
3
解决办法
2万
查看次数

如何在bash别名中包含参数?

试图创建:

alias mcd="mkdir $1; cd $1"
Run Code Online (Sandbox Code Playgroud)

获得:

$ mcd foo
usage: mkdir [-pv] [-m mode] directory ...
-bash: foo: command not found
Run Code Online (Sandbox Code Playgroud)

我究竟做错了什么?

bash alias mkdir

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

为什么要创建一个别名来创建函数?

我偶尔会看到这种模式,尤其是在有关Bash提示自定义的问题上。

alias f='_ () { useful code; }; _'
Run Code Online (Sandbox Code Playgroud)

我完全没有理由在此处创建别名。明显的重构

f () { useful code; }
Run Code Online (Sandbox Code Playgroud)

这样就避免了完全声明一个别名,而只是简单地一劳永逸地定义了函数,这看起来更简单,更易理解,不那么脆弱且更高效。(以防万一,每次调用别名时,别名最终都会重新声明该函数。)

例如,使Bash别名带有参数?有几个答案可以证明这种技术。使用ftp路径运行lftp的bash脚本是一个有关此函数内部实际功能的问题,其中包含类似这样的代码,尽管我轻描淡写,OP也不解释为什么。

这是否仅仅是一种反模式,还是有实际的理由这样做?在什么情况下该设计有意义?

这与别名后面没有空格有关,也与代码混淆无关(除了这种神秘的技术之外,我发现的示例通常是完全可读的)。

bash shell alias sh

20
推荐指数
3
解决办法
436
查看次数

Git Bash:通过Alias启动应用程序而不挂Bash(WIndows)

我在Windows上的Git Bash中创建了几个bash别名,从bash shell启动可执行文件.

我遇到的问题是,似乎bash在它再次开始响应输入之前等待退出代码,因为一旦我关闭它启动的应用程序,它就会再次开始执行命令.

是否有一个开关或我可以包含在别名中的东西,以便bash不等待退出代码?

我在寻找像这样的东西......

alias np=notepad.exe --exit
Run Code Online (Sandbox Code Playgroud)

git bash

15
推荐指数
2
解决办法
6480
查看次数

每次键入kubectl --all-namespaces的快捷方式

我们是否可以为全命名空间设置别名,因为kubectl无法识别该命令kubectl --all-namespaces或任何类型的快捷方式以最小化整个命令的键入。

bash shell kubernetes kubectl

10
推荐指数
2
解决办法
1467
查看次数

在Unix中使用find命令时忽略"是一个目录"

我使用以下命令在目录结构中递归地查找字符串.

find . -exec grep -l samplestring {} \;
Run Code Online (Sandbox Code Playgroud)

但是当我在一个大型目录结构中运行命令时,会有一个很长的列表

grep: ./xxxx/xxxxx_yy/eee: Is a directory
grep: ./xxxx/xxxxx_yy/eee/local: Is a directory
grep: ./xxxx/xxxxx_yy/eee/lib: Is a directory
Run Code Online (Sandbox Code Playgroud)

我想省略上面的结果.只需显示带有字符串的文件名即可.有人可以帮忙吗?

unix directory grep find

7
推荐指数
2
解决办法
4760
查看次数