在bash中,按C-x C-v会输出外壳的版本,例如
$ # pressing C-x C-v here
GNU bash, version 4.4.12(1)-release (x86_64-unknown-linux-gnu)
在zsh中,什么都不会发生。这同样适用于启动默认$EDITOR的其他“标准”bash组合键,如C-x C-e。
% # pressing C-x C-v here - nothing happens
% zsh --version
zsh 5.3.1 (x86_64-unknown-linux-gnu)
% # ^ I want to the above line
我注意到,OSx和Linux之间的printf内置似乎不一样。我的印象是内建物就是内建物。这与我正在处理的任何具体问题无关。我就是解释不了。
OSx
printf '%(+%s)T\n' -2
-bash: printf: `(': invalid format character
which printf
printf is a shell builtin
printf is /usr/bin/printf
Linux
printf '%(+%s)T\n' -2
+1431027100
which printf
printf is a shel
更新-看起来这是bash 4.3.42特有的东西,因为它与4.3.46很好地工作。把这个职位留给将来遇到同样问题的人。
当我在bash命令行中运行此命令时,它正常工作:
% (TMOUT=3; s="no selection"; select s in a b c ; do break ; done; echo $s)
1) a
2) b
3) c
#?
no selection
% _
结果:不显示选择并返回命令行。
然而,当我放置一个脚本并执行它时,它会重复请求选择。
% cat a.sh
#!/bin/bash
(TMOUT=3; s="no selection&
echo $var命令可以很容易地调用bash中变量的值,如下所示
user@linux:~$ a=1; b=2; c=a+b
user@linux:~$ echo $a $b $c
1 2 a+b
user@linux:~$
我想要实现的是用x中的实际值替换a,b,c
user@linux:~$ a=1; b=2; c=a+b
user@linux:~$ for i in a b c; do echo "$i = x"; done
a = x
b = x
c = x
user@linux:~$
通过使用类似的for循环,我希望能得到这样的输出
a = 1
b = 2
c
我有一台Linux机(Bash5.1),我需要将以下任务添加到我的脚本中。
哪个Linux命令或Bash语法将计算下一个ASCII字符?
备注-命令语法也可以是Bash /Perl,但此语法必须在我的Bash脚本中。
示例:
input results
a --> the next is b
c --> the next is d
A --> the next is B
我只是在我的机器上安装了bashv4.1.0。
旧版本在/bin/bash下。有没有一种方法可以使用更新版本的bash而不替换/bin中的旧版本?我希望更新的版本被用作默认版本。
$ which bash
/bin/bash
$ bash --version
GNU bash, version 3.00.15(1)-release (i686-redhat-linux-gnu)
Copyright (C) 2004 Free Software Foundation, Inc.
$ ~/bash/bash-4.1/bash --version
GNU bash, version 4.1.0(1)
我尝试在bash脚本中使用history命令,但它没有工作。
bash文件的代码:
#!/bin/bash
# Copy history to file history
#cd /media/saleel_almajd/Study/linux/my_scripts/
echo "start Copy history to /media/saleel_almajd/Study/linux/my_scripts/history.txt"
export HISTTIMEFORMAT='%F %T ' #to make history and date apear
这是剧本
user@linux:~$ cat script.sh
#!/bin/bash
for i in `seq $#`
do
echo $i
done
user@linux:~$
输出
user@linux:~$ ./script.sh a b c
1
2
3
user@linux:~$
Desired输出
我想得到这样的论证价值.而不仅仅是数字
user@linux:~$ ./script.sh a b c
1 - a
2 - b
3 - c
user@linux:~$
我从这里复制并运行了我的ubuntu18.04命令,但是得到了一个错误,如:
$ bash -c “$(wget -q -O – https://linux.kite.com/dls/linux/current)”
bash: “”: command not found
$ type quote
quote is a function
quote ()
{
local quoted=${1//\'/\'\\\'\'};
printf "'%s'" "$quoted"
}
对错误有什么建议吗?
我已经为Linux提供了完美的构建脚本。目前,我想适应Cygwin的构建,使它跨平台。问题是构建脚本使用管道重定向,比如|和>,当使用Cygwin的‘bash-c’时,需要用^转义。
我想知道是否有任何解决方案可以避免为Cygwin转义每个管道重定向符号,比如bash命令行选项或env。
例子:
ls -l | tee 1.log在Linux中工作得很好,需要按照下面的方式与Cygwin的bash -c一起使用
ls -l ^| tee 1.log
我正在尝试这个命令。make stm32f429-discovery I有stm32f429-发现板(arm皮层M3)。我想在上面安装u-boot,我正在按照教程中给出的方法来尝试,并得到这个错误.
/bin/bash: /home/uzair/Documents/linux-cortexm-1.12.1/tools/arm-2010q1/bin/arm-uclinuxeabi-gcc: No such file or directory
/bin/bash: /home/uzair/Documents/linux-cortexm-1.12.1/tools/arm-2010q1/bin/arm