如果我是在Linux终端中,并且开始设置变量,比如导出AGE=45。
然后我有一个脚本来读取终端变量中的用户数据并对其进行处理,这有可能吗?
IE:
user@linux$ export AGE=45
user@linux$ ./age.sh
#script asks for input
read -p "what is your age?" scriptAGE
#user inputs variable set in terminal
$AGE
#回波输出
echo "your age is: " $scriptAGE"
#应该说你的年龄
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
紧随其后
https://stackoverflow.com/questions/1809899/how-can-i-assign-the-output-of-a-function-to-a-variable-using-bash和如何将命令的输出分配给变量?
我写
function getos(){
# http://stackoverflow.com/a/27776822/1637673
case "$(uname -s)" in
Darwin)
OS='mac'
;;
Linu
我们的.Net Core5网站部署在Azure Linux web应用程序服务上。我们需要使用管道变量来替换appsettings.json文件值,但我们无法在azure应用程序服务deploy for Linux web应用程序类型上看到文件转换和变量替换选项,如下图所示。任何建议都会很有帮助。
可以使用definitions.json和/或advanced.config配置RabbitMQ。有没有办法引用Helm/Linux环境变量?
advanced.config摘录:
[{shovels,
[%% A named shovel worker.
{my_shovel,
[
{sources,
[%% URI(s) and pre-declarations for all source broker(s).
{brokers, [RMQ_URL]},
我的代码是:
#!/bin/bash
if [ $1 -gt $2 ];then
echo $1 > $2
fi
if [ $1 -eq $2 ];then
echo $1 = $2
fi
if [ $1 -lt $2 ];then
echo $1 < $2
fi
通过./script.sh 3 56执行脚本时,我得到的响应是./script.sh: line 9: 56: No such file or directory。我有权执行这个脚本。我是刚开始编程和使用linux的。请告诉我如何修改我的剧本。
我是Linux新手,请原谅这里使用的任何错误术语。
我正在使用Ubuntu 18.04。我正在使用read命令读取shell脚本中的文本。在bash窗口中有一个变量,我想在这个read命令中替换它。我的shell脚本如下所示:
echo "Enter Text"
read text
echo "Text is $text"
然后我在终端机上这样执行
user@machine:~$ var="hello world"
user@machine:~$ ./script.sh
Enter text
$var
Text is $var
user@mach
我对Linux中的脚本编写很陌生,我认为我对在命令替换中使用变量感到困惑,越多地了解和阅读它。有人能给我解释一下下面的情景吗?
在我的ksh脚本中,我试图在sqlplus脚本中使用ksh变量,如下所示:
temp_var="'a', 'b'"
randomVar=$(sqlplus -s $con_details <<EOF
update table ABC
Set field1='val'
Where field2 NOT IN ("${temp_var}");
EOF)
但是,上面的语法会导
我和我的合作伙伴在使用这个基本的Linux脚本时遇到了麻烦。我们的讲师把一个高级的Linux脚本包扔给我们去调试,我们都很迷茫。脚本应该删除文件名中包含嵌入空格的文件,而我使用的是实际的rm命令。我得到了“缺少操作数”,我不确定该怎么办。
#!/bin/bash
# This script is supposed to delete all filenames in current directory
#+ containing embedded spaces.
# It doesn't work
# Why not?
badname= ls | grep " "
我想在巴泽尔为我的统治创造一个工具链。我创建了一个名为toolchain.bzl的文件,该文件的源代码如下:
BarInfo = provider(
fields = {
"bar": "path to bar executable",
},
doc = "Defines a Bar toolchain based on an SDK",
)
def _bar_toolchain_impl(ctx):
bar_info = ctx.attr.path
platform_bar_info =
当我在我的机器上启动一个python3外壳时,我会收到以下警告:
$ python3
Python 3.6.4 |Anaconda, Inc.| (default, Jan 16 2018, 18:10:19)
[GCC 7.2.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
readline: /etc/inputrc: line 18: term: unknown variable name
readline:
在我的Linux机器上,我执行以下操作:
创建一个名为script.sh的脚本
#!/bin/bash
variable=`df -hP`
echo < my_file.txt
然后创建一个名为my_file.txt的外部文件
The disk usage is: $variable
当我执行script.sh时,没有打印任何内容。
预期产出如下:
The disk usage is: Filesystem Size Used Avail Use% Mounted on
udev 3.2G 0 3.2G 0% /dev
我正在Eclipse IDE for C/C++ Linux Developers (Indigo SR2)中为嵌入式系统开发一个Linux内核模块(驱动程序)。我已经将内核的include目录添加到我的项目的索引路径(项目>属性> C/C++常规>路径和Sybmols -> Includes (选项卡) -> Add ...(按钮)。)但是,有几个内核的头文件引用了asm目录,它实际上是linux/asm-powerpc目录(在我的例子中)的一个覆盖,覆盖了linux/asm-generic目录的顶部,其中特定版本覆盖了通用版本。
如何告诉Eclipse的索引器
我正试图在我的桌面上交叉编译aarch64机器的aarch64。
$ CC=aarch64-linux-gnu-gcc GOOS=linux GOARCH=arm64 CGO_ENABLED=1 go build -v -ldflags="-extld=$CC"
# github.com/mattn/go-sqlite3
sqlite3-binding.c: In function ‘sqlite3SelectNew’:
sqlite3-binding.c:125322:10: warning: function may return address of local vari
我试过这个例子:loop = $(($loop + 1))
但是Linux Shell告诉我
./while_and_read.sh:第17行:循环:未找到命令
在Linux中,我应该如何使用循环vairable来增加每循环1次呢?
#!/bin/bash
echo "Please type a number which it should be greeter than 0."
read -p "Number:" -t 5 x
sum=0
loop=0
if [ $x -le 0 ];then
echo "Please type a