我以前使用CShell(csh),它允许你创建一个带参数的别名.符号是这样的
alias junk="mv \\!* ~/.Trash"
Run Code Online (Sandbox Code Playgroud)
在Bash中,这似乎不起作用.鉴于Bash有许多有用的功能,我会假设这个功能已经实现,但我想知道如何.
在Bash脚本中,我想将一行分成几部分并将它们存储在一个数组中.
这条线:
Paris, France, Europe
Run Code Online (Sandbox Code Playgroud)
我想将它们放在这样的数组中:
array[0] = Paris
array[1] = France
array[2] = Europe
Run Code Online (Sandbox Code Playgroud)
我想用简单的代码,命令的速度无关紧要.我该怎么做?
有人能告诉我是否应该在shell脚本中包含变量的引号?
例如,以下是正确的:
xdg-open $URL
[ $? -eq 2 ]
Run Code Online (Sandbox Code Playgroud)
要么
xdg-open "$URL"
[ "$?" -eq "2" ]
Run Code Online (Sandbox Code Playgroud)
如果是这样,为什么?
我的bash脚本中有一个变量,其值如下所示:
~/a/b/c
Run Code Online (Sandbox Code Playgroud)
请注意,它是未扩展的波形符号.当我对这个变量执行ls -lt(称之为$ VAR)时,我没有这样的目录.我想让bash解释/扩展这个变量而不执行它.换句话说,我希望bash运行eval但不运行evaluate命令.在bash中这可能吗?
我是如何在不扩展的情况下将其传递到我的脚本中的?我用双引号传递了围绕它的论点.
试试这个命令看看我的意思:
ls -lt "~"
Run Code Online (Sandbox Code Playgroud)
这正是我所处的情况.我想要扩展代字号.换句话说,我应该用什么来代替魔法来使这两个命令相同:
ls -lt ~/abc/def/ghi
Run Code Online (Sandbox Code Playgroud)
和
ls -lt $(magic "~/abc/def/ghi")
Run Code Online (Sandbox Code Playgroud)
请注意〜/ abc/def/ghi可能存在也可能不存在.
有没有办法获得wc在bash中返回的整数?
基本上我想在文件名之后将行号和字数写入屏幕.
output: filename linecount wordcount
这是我到目前为止:
files=`ls`
for f in $files;
do
if [ ! -d $f ] #only print out information about files !directories
then
# some way of getting the wc integers into shell variables and then printing them
echo "$f $lines $ words"
fi
done
如何创建适合在坩埚中检查的补丁?
git diff branch master --no-prefix > patch
Run Code Online (Sandbox Code Playgroud)
这只产生3行上下文.所以我做了以下几点
git diff --unified=2000 branch master --no-prefix > patch
Run Code Online (Sandbox Code Playgroud)
希望所有文件都少于2000行.有没有办法告诉git包含补丁文件中的所有行而不必指定最大行?
说我有字符串"Memory Used:19.54M"我如何从中提取19.54?19.54将经常更改,因此我需要将其存储在变量中并将其与下一次迭代的值进行比较.
我想我需要一些grep和regex的组合,但我从来没有真正理解正则表达式..
我使用git有一个不寻常的目的 - 它在我写小说时存储我的文本.(我知道,我知道......太讨厌了.)
我试图跟踪生产力,并希望衡量后续提交之间的差异程度.作者对"工作"的代理是"写字",至少在创作阶段.我不能使用直字数,因为它忽略了编辑和压缩,这两者都是写作的重要部分.我想要跟踪:
(words added)+(words removed)
Run Code Online (Sandbox Code Playgroud)
这将重复计算(单词改变),但我没关系.
键入一些神奇的咒语并让git报告任何两个修订版本的距离度量标准会很棒.但是,git diffs是补丁,即使你只是在线上捣乱了一个字符,也会显示整行.我不希望这样,特别是因为我的"行"是段落.理想情况下,我甚至可以用"单词"来指定我的意思(虽然\ W +可能是可以接受的).
是否有一个git-diff的标志,以逐字的方式给出差异?或者,是否有使用标准命令行工具来计算上述指标的解决方案?
我正在编写一个需要解析文件名的bash脚本.
它将需要删除所有特殊字符(包括空格):"!?. - _并将所有大写字母更改为小写.这样的东西:
Some_randoM data1-A
More Data0
Run Code Online (Sandbox Code Playgroud)
至:
somerandomdata1a
moredata0
Run Code Online (Sandbox Code Playgroud)
我在许多不同的编程语言中看到了很多问题,但在bash中没有.有没有办法做到这一点?