read -p "Please Enter a Message:" message
Run Code Online (Sandbox Code Playgroud)
我怎样才能在之后添加换行符Message:
?
我通常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中配置别名,但有没有办法为一系列命令配置别名?
即我想要一个命令更改为特定目录,然后运行另一个命令.
另外,有没有办法设置运行"sudo mycommand"的命令,然后输入密码?在MS-DOS时代,我一直在寻找一个.bat文件但是我不确定linux(或者说在这种情况下是Mac OSX)的等价物.
我正在尝试定义一个别名,其中参数插入到中间,而不是附加到末尾.
我尝试像这样定义它:
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)
是否可以使用别名来执行此操作,还是需要定义函数?
使用Silver Searcher,我该如何搜索:
其他偏好:希望通过dotfiles进行不区分大小写的搜索和搜索.
尝试使用这个别名没有太多运气:
alias search="ag -g $1 --smart-case --hidden && ag --smart-case --hidden $1"
试图创建:
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 f='_ () { useful code; }; _'
Run Code Online (Sandbox Code Playgroud)
我完全没有理由在此处创建别名。明显的重构
f () { useful code; }
Run Code Online (Sandbox Code Playgroud)
这样就避免了完全声明一个别名,而只是简单地一劳永逸地定义了函数,这看起来更简单,更易理解,不那么脆弱且更高效。(以防万一,每次调用别名时,别名最终都会重新声明该函数。)
例如,使Bash别名带有参数?有几个答案可以证明这种技术。使用ftp路径运行lftp的bash脚本是一个有关此函数内部实际功能的问题,其中包含类似这样的代码,尽管我轻描淡写,OP也不解释为什么。
这是否仅仅是一种反模式,还是有实际的理由这样做?在什么情况下该设计有意义?
这与别名后面没有空格有关,也与代码混淆无关(除了这种神秘的技术之外,我发现的示例通常是完全可读的)。
我在Windows上的Git Bash中创建了几个bash别名,从bash shell启动可执行文件.
我遇到的问题是,似乎bash在它再次开始响应输入之前等待退出代码,因为一旦我关闭它启动的应用程序,它就会再次开始执行命令.
是否有一个开关或我可以包含在别名中的东西,以便bash不等待退出代码?
我在寻找像这样的东西......
alias np=notepad.exe --exit
Run Code Online (Sandbox Code Playgroud) 我们是否可以为全命名空间设置别名,因为kubectl无法识别该命令kubectl --all-namespaces
或任何类型的快捷方式以最小化整个命令的键入。
我使用以下命令在目录结构中递归地查找字符串.
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)
我想省略上面的结果.只需显示带有字符串的文件名即可.有人可以帮忙吗?