我知道了,忘了它并重新学习它.是时候把它写下来了.
我有一个名为test.sh的脚本:
#!/bin/bash
STR = "Hello World"
echo $STR
Run Code Online (Sandbox Code Playgroud)
我跑的时候sh test.sh得到这个:
test.sh: line 2: STR: command not found
Run Code Online (Sandbox Code Playgroud)
我究竟做错了什么?我在网上看一下非常基础/初学者的bash脚本教程,这就是他们说声明变量的方式......所以我不确定我做错了什么.
我在Ubuntu Server 9.10上.是的,bash位于/bin/bash.
我发现它grep的--color=always旗帜非常有用.但是,grep只打印带匹配的行(除非您要求上下文行).鉴于它打印的每一行都有一个匹配,突出显示不会增加尽可能多的能力.
我真的很喜欢cat一个文件,看到整个文件突出显示模式匹配.
有什么方法我可以告诉grep打印每一行被读取而不管是否有匹配?我知道我可以编写一个脚本来在文件的每一行上运行grep,但我很好奇这是否可以用标准grep.
echo我的脚本中有问题:
echo -n "Some string..."
Run Code Online (Sandbox Code Playgroud)
版画
-n Some string...
Run Code Online (Sandbox Code Playgroud)
并移动到下一行.在控制台中,它正确地工作而没有换行:
Some string...
Run Code Online (Sandbox Code Playgroud) 我有一些Unix shell脚本,我需要在开始做之前检查某些环境变量是否已设置,所以我做了这样的事情:
if [ -z "$STATE" ]; then
echo "Need to set STATE"
exit 1
fi
if [ -z "$DEST" ]; then
echo "Need to set DEST"
exit 1
fi
Run Code Online (Sandbox Code Playgroud)
这是很多打字.是否有更优雅的习惯用于检查是否设置了一组环境变量?
编辑:我应该提到这些变量没有有意义的默认值 - 如果有任何未设置,脚本应该出错.
我知道clear'清除'当前屏幕的命令,但它只是通过打印许多换行来实现这一点 - 清除的内容只是向上滚动.
有没有办法彻底擦除终端的所有先前输出,以便即使向上滚动也无法到达它?
我是OS X的新手,在使用Ubuntu Linux一段时间后刚刚获得了Mac.在我想弄清楚的很多事情中,我的终端窗口中没有颜色 - 就像在运行时显示的那些(在Linux上)ls -la或git status......
我只是无法弄清楚如何在我的shell中激活颜色.
如何从库存OS X系统上的Un*x shell脚本执行HTTP GET?(安装第三方软件不是一种选择,因为这必须在我无法控制的许多不同系统上运行).
例如,如果我在本地启动Mercurial服务器执行hg服务:
... $ hg serve
Run Code Online (Sandbox Code Playgroud)
然后,从具有wget命令的Linux 我做一个wget:
... $ wget http://127.0.0.1:8000
--2010-12-31 22:18:25-- http://127.0.0.1:8000/
Connecting to 127.0.0.1:8000... connected.
HTTP request sent, awaiting response... 200 Script output follows
Length: unspecified [text/html]
Saving to: `index.html
Run Code Online (Sandbox Code Playgroud)
在我发起"hg serve"命令的终端上,我确实可以看到HTTP GET成功了:
127.0.0.1 - - [30/Dec/2010 22:18:17] "GET / HTTP/1.0" 200 -
Run Code Online (Sandbox Code Playgroud)
所以在Linux上,从shell脚本执行HTTP GET的一种方法是使用wget(如果当然安装了该命令).
有什么其他方法可以做相当于一个wget?特别是我正在寻找可以在OS X安装上运行的东西.
当我输入时uname -a,它给出以下输出.
Linux mars 2.6.9-67.0.15.ELsmp #1 SMP Tue Apr 22 13:50:33 EDT 2008 i686 i686 i386 GNU/Linux
Run Code Online (Sandbox Code Playgroud)
我怎么知道给定的操作系统是32位还是64位?
这在编写configure脚本时很有用,例如:我要构建什么样的架构?