我有一个包含以下代码的shell脚本:
var=`hg st -R "$path"`
if [ -n "$var" ]; then
echo $var
fi
Run Code Online (Sandbox Code Playgroud)
但条件代码总是执行,因为hg st
始终打印至少一个换行符.
$var
(比如trim()
在PHP中)?要么
如何将命令行参数传递给别名?这是一个示例:
alias mkcd='mkdir $1; cd $1;'
但在这种情况下,$ xx将在别名创建时转换,而不是在运行时转换.但是,我创建了一个使用shell函数的解决方法(在googling之后),如下所示:
function mkcd(){ mkdir $1 cd $1 }
只是想知道是否有办法制作接受CL参数的别名.
顺便说一句 - 我使用'bash'作为我的默认shell.
在这个特殊情况下,我想在Bash中添加一个确认
Are you sure? [Y/n]
对于Mercurial来说hg push ssh://username@www.example.com//somepath/morepath
,它实际上是一个别名.是否有可以添加到别名的标准命令来实现它?
原因是hg push
并且hg out
听起来很相似,有时当我想要时hgoutrepo
,我可能会意外地输入hgpushrepo
(两者都是别名).
更新:如果它可以像是带有另一个命令的内置命令,例如:confirm && hg push ssh://...
那个很棒......只是一个可以请求a yes
或者no
继续其余命令的命令yes
.
是否可以在列出目录时查看数字unix权限,例如644而不是符号输出-rw-rw-r--
谢谢.
是否可以执行以下操作:
我想运行以下内容:
mongodb bin/mongod
Run Code Online (Sandbox Code Playgroud)
在我的bash_profile中我有
alias = "./path/to/mongodb/$1"
Run Code Online (Sandbox Code Playgroud) 我想像这样创建一个别名bash
:
alias tail_ls="ls -l $1 | tail"
Run Code Online (Sandbox Code Playgroud)
因此,如果有人输入:
tail_ls /etc/
Run Code Online (Sandbox Code Playgroud)
它只会显示目录中的最后10个文件.
但$1
似乎并不适合我.有什么办法可以在bash中引入变量.
我想使用rsync 在两个方向上同步两个目录.
我指的是传统意义上的同步(不是 rsync手册中的含义):
我想在两个方向更新目录,具体取决于哪个更新.
这可以通过rsync完成(最好是以Linux方式)吗?
如果没有,还有其他解决方案吗?
我正在尝试为我的简单git add/commit/push创建一个带参数的别名.
我已经看到函数可以用作别名所以我尝试但我没有成功..
在我之前:
alias gitall="git add . ; git commit -m 'update' ; git push"
Run Code Online (Sandbox Code Playgroud)
但我希望能够修改我的提交:
function gitall() {
"git add ."
if [$1 != ""]
"git commit -m $1"
else
"git commit -m 'update'"
fi
"git push"
}
Run Code Online (Sandbox Code Playgroud)
(我知道这是一个可怕的git练习)
如果我选择一个zip文件并右键单击"在此处提取",则会创建一个包含zip文件名的文件夹,并将zip文件的整个内容提取到其中.
但是,我想通过shell转换几个zip文件.但是,当我这样做
unzip filename.zip
Run Code Online (Sandbox Code Playgroud)
该文件夹"filename"
未创建,但所有文件都被解压缩到当前目录中.
我查看了参数,但没有这样的参数.我也试过了
for zipfile in \*.zip; do mkdir $zipfile; unzip $zipfile -d $zipfile/; done
Run Code Online (Sandbox Code Playgroud)
但.zip
必须使用sed删除2. $ zipfile和4. $ zipfile 的扩展名.如果我做
for zipfile in \*.zip; do mkdir sed 's/\.zip//i' $zipfile; unzip $zipfile -d sed 's/\.zip//i' $zipfile/; done
Run Code Online (Sandbox Code Playgroud)
它不起作用.
如何正确更换.zip
扩展名$zipfile
?
有没有比shell脚本更简单的方法?