我需要检查输入参数是否存在.我有以下脚本
if [ "$1" -gt "-1" ]
then echo hi
fi
Run Code Online (Sandbox Code Playgroud)
我明白了
[: : integer expression expected
Run Code Online (Sandbox Code Playgroud)
如何首先检查输入参数1以查看它是否存在?
在编写shell程序时,我们经常使用/bin/sh和/bin/bash.我经常使用bash,但我不知道它们之间有什么区别.
bash和之间的主要区别是sh什么?
我们究竟需要意识到在编程时bash和sh?
我以前使用CShell(csh),它允许你创建一个带参数的别名.符号是这样的
alias junk="mv \\!* ~/.Trash"
Run Code Online (Sandbox Code Playgroud)
在Bash中,这似乎不起作用.鉴于Bash有许多有用的功能,我会假设这个功能已经实现,但我想知道如何.
在bash中有一种方法可以将字符串转换为小写字符串吗?
例如,如果我有:
a="Hi all"
Run Code Online (Sandbox Code Playgroud)
我想将其转换为:
"hi all"
Run Code Online (Sandbox Code Playgroud) 有没有什么Bash家当客观上比其他大多数应用更好?
#!/usr/bin/env bash#!/bin/bash#!/bin/sh#!/bin/sh -我很清楚地回忆起很久以前的一次听说,在最后添加一个破折号可以防止有人将命令传递给你的脚本,但却无法找到任何细节.
我尝试$(date)在我的bash shell脚本中使用,但是我想要YYYY-MM-DD格式的日期.我怎么得到这个?
是否有一个标准的Bash工具,它像echo一样输出到stderr而不是stdout?
我知道我能做到,echo foo 1>&2但它有点难看,而且我怀疑,容易出错(例如,当事情发生变化时更容易被编辑错误).
我有这样的线条,我想知道我实际上有多少行......
09:16:39 AM all 2.00 0.00 4.00 0.00 0.00 0.00 0.00 0.00 94.00
09:16:40 AM all 5.00 0.00 0.00 4.00 0.00 0.00 0.00 0.00 91.00
09:16:41 AM all 0.00 0.00 4.00 0.00 0.00 0.00 0.00 0.00 96.00
09:16:42 AM all 3.00 0.00 1.00 0.00 0.00 0.00 0.00 0.00 96.00
09:16:43 AM all 0.00 0.00 1.00 0.00 1.00 0.00 0.00 0.00 98.00
09:16:44 AM all 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 100.00
09:16:45 AM all 2.00 0.00 6.00 0.00 …Run Code Online (Sandbox Code Playgroud) 也许是一个相当不寻常的情况,但我想指定一个私有SSH密钥,以便在从本地计算机执行shell(git)命令时使用.
基本上是这样的:
git clone git@github.com:TheUser/TheProject.git -key "/home/christoffer/ssh_keys/theuser"
Run Code Online (Sandbox Code Playgroud)
甚至更好(在Ruby中):
with_key("/home/christoffer/ssh_keys/theuser") do
sh("git clone git@github.com:TheUser/TheProject.git")
end
Run Code Online (Sandbox Code Playgroud)
我见过使用Net :: SSH连接到远程服务器的示例,它使用指定的私钥,但这是一个本地命令.可能吗?
比方说,你有一个alias像bash 一样:
alias rxvt='urxvt'
Run Code Online (Sandbox Code Playgroud)
哪个工作正常.
然而:
alias rxvt='urxvt -fg '#111111' -bg '#111111''
Run Code Online (Sandbox Code Playgroud)
不会起作用,也不会:
alias rxvt='urxvt -fg \'#111111\' -bg \'#111111\''
Run Code Online (Sandbox Code Playgroud)
那么,一旦转义了引号,你最终如何在字符串中匹配开头和结尾的引号?
alias rxvt='urxvt -fg'\''#111111'\'' -bg '\''#111111'\''
Run Code Online (Sandbox Code Playgroud)
看起来很笨拙虽然如果你允许这样连接它们就会代表相同的字符串.