我在bash上很新,所以这是一个非常棒的问题..
假设我有一个字符串:
string1 [string2] string3 string4
Run Code Online (Sandbox Code Playgroud)
我想string2
从方括号中提取; 但是括号可能在任何其他时间围绕任何其他字符串.
我如何使用sed
等来做这个?谢谢!
为什么bash有以下行为?
echo $((true == false))
1
Run Code Online (Sandbox Code Playgroud)
我原本以为这会打印0
,但会打印出来1
.
以下事实使这进一步复杂化:
> echo $((true))
0
> echo $((false))
0
> echo $((true == true))
1
> echo $((false == false))
1
Run Code Online (Sandbox Code Playgroud) 如何使用mac为mac上的字符串创建md5哈希bash
? md5sum
在我的环境中不存在.我man
为md5 做了一个但是我对这真的很困惑.
md5 "string"
Run Code Online (Sandbox Code Playgroud)
不返回哈希值.
在BASH中,是否可以在函数体中获取函数名称?以下面的代码为例,我想在其正文中打印函数名"Test",但"$ 0"似乎是指脚本名而不是函数名.那么如何获取函数名称?
#!/bin/bash
function Test
{
if [ $# -lt 1 ]
then
# how to get the function name here?
echo "$0 num" 1>&2
exit 1
fi
local num="${1}"
echo "${num}"
}
# the correct function
Test 100
# missing argument, the function should exit with error
Test
exit 0
Run Code Online (Sandbox Code Playgroud) 这是myscript.sh
#!/bin/bash
for i in {1..$1};
do
echo $1 $i;
done
Run Code Online (Sandbox Code Playgroud)
如果我运行myscript.sh 3
输出是
3 {1..3}
Run Code Online (Sandbox Code Playgroud)
代替
3 1
3 2
3 3
Run Code Online (Sandbox Code Playgroud)
显然$3
包含正确的值,为什么不像for i in {1..$1}
我for i in {1..3}
直接写的一样?
我有一个bash脚本检查平台上的CPU数量,以有效地使用-j
make,repo等选项.我使用这个:
JOBS=$(cat /proc/cpuinfo | grep processor | tail -1 | sed "s,^.*:.*\([0-9].*\)$,\1,")
echo -e "4\n$JOBS" | sort -r | tail -1
Run Code Online (Sandbox Code Playgroud)
它工作正常.但是,我想知道是否有任何内置函数执行相同的操作(即计算最小值或最大值)?
GNU tar可以将多个文件添加到存档中,在添加时删除每个文件吗?
当没有足够的磁盘空间来容纳整个tar存档和原始文件时,这很有用 - 因此,在以通常方式创建存档后,无法简单地手动删除文件.
我遇到了代码所在的shell脚本
for line in $LIST_ARRAY;do
if [[ $LIST_ARRAY =~ $line ]]
then
echo "true"
....
...
.
Run Code Online (Sandbox Code Playgroud)
什么是使用=~
在这种情况下?
例如,我的终端执行此操作:
$ echo -e "\xE2\x98\xA0"
???
Run Code Online (Sandbox Code Playgroud)
我希望它能做到这一点:
$ echo -e "\xE2\x98\xA0"
?
Run Code Online (Sandbox Code Playgroud)
为什么?如何使终端输出正确的unicode符号?
我在Arch Linux上使用Gnome 3的终端.
locale
节目的输出:
LANG=C
LC_CTYPE="C"
LC_NUMERIC="C"
LC_TIME="C"
LC_COLLATE="C"
LC_MONETARY="C"
LC_MESSAGES="C"
LC_PAPER="C"
LC_NAME="C"
LC_ADDRESS="C"
LC_TELEPHONE="C"
LC_MEASUREMENT="C"
LC_IDENTIFICATION="C"
LC_ALL=
Run Code Online (Sandbox Code Playgroud) 我希望linux脚本能够杀死在控制台上运行的java程序.
以下是以jar运行的进程.
[rapp@s1-dlap0 ~]$ ps -ef |grep java
rapp 9473 1 0 15:03 pts/1 00:00:15 java -jar wskInterface-0.0.1-SNAPSHOT-jar-with-dependencies.jar
rapp 10177 8995 0 16:00 pts/1 00:00:00 grep java
[rapp@s1-dlap0 ~]$
Run Code Online (Sandbox Code Playgroud) bash ×10
shell ×3
linux ×2
command-line ×1
compression ×1
console ×1
cryptography ×1
for-loop ×1
kill-process ×1
macos ×1
regex ×1
sed ×1
tar ×1
terminal ×1
unix ×1