如果我是在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"
#应该说你的年龄
我试图将一些复杂的makefile规则组合在一起,以便在多个编译器上自动构建一个项目。我有一个规则,它创建一些动态生成的变量并将变量分配给它们,然后将这些变量传递给一个调用来构建一个单独的规则。
.PHONY: all
all:
@echo "Detected CPULIST:${CPULIST_DETECTED}"
@echo "CPULIST:${CPULIST}"
@for cpu in $(CPULIST_DETECTED); do \
echo "CPU:$${cpu}
如果我将cat命令保存到字符串中,然后执行它,那么我将得到一个错误。
linux# cmd="cat /data/test/test.tx* | grep toto"
linux# eval '$cmd'
cat: |: No such file or directory
cat: grep: No such file or directory
cat: toto: No such file or directory
即使是
linux# $cmd
cat: |: No such file or directory
cat: grep: No such file
让-v返回:
GNU Make 4.2.1
Built for x86_64-pc-linux-gnu
Copyright (C) 1988-2016 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
在目录中,有一个文件: makefile
ifneq (
我试过这个例子: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
我已经编写了shell脚本,它从输入文件中读取命令并执行命令。我有这样的命令:
cat linux_unit_test_commands | grep "dmesg"
在输入文件中。在执行shell脚本时,我收到下面的错误消息:
cat: |: No such file or directory
cat: grep: No such file or directory
cat: "dmesg": No such file or directory
剧本:
#!/bin/bash
while read line
do
output=`$line
我在执行包含变量的命令时遇到了问题,所以我尝试用这个简单的例子在这里重新创建它。
我想列出路径DIR的内容,但是因为路径中有一个space,所以它不能工作。问题在于路径/home/User Name/tarfolder中的空间。如果路径中没有空间,这是很好的。
我如何才能使它对路径中有空间的路径起作用?
另外,使用linux/unix在路径上留有空间也不是很好的实践。我正在windows 7机器上开发cygwin,但我正在为我使用的linux服务器编写脚本。
剧本:
#!/bin/bash
## trying to work on directories here that have spa
我有一个bash脚本,由于某种原因,在我的iMac上运行的GNU Bash 3.2.57 (随Mojave (10.14.5)提供)继续导致错误信号被触发并由信号陷阱处理,即使生成它的eval命令在一个条件下使用:
trap 'exit $?' ERR
if ! eval false; then
echo THIS NEVER SHOWS
fi
在linux机器上,它可以像预期的那样执行,我相信在其他一些Mac电脑上也是如此(尽管我发现至少有一台不能执行)。似乎避免的唯一方法是禁用陷阱,然后重新启用。删除'eval‘也是可行的,但在实际的脚本中,这并不是简单的事情
我将在Ubuntu“服务器”上运行。首先,我尝试了默认安装。未定义$DOCKER_HOST。然后我把它设置为unix:///var/run/docker.sock
我一直有:
$ docker-compose up
ERROR: Couldn't connect to Docker daemon at http+docker://localunixsocket - is it running?
If it's at a non-standard location, specify the URL with the DOCKER_HOST environment variabl
根据perldoc,字符串Eval应该在当前范围内执行。但下面的简单测试似乎与此相矛盾。
我们需要以下两个简单的文件来设置测试。请把它们放在同一个文件夹下。
test_eval_scope.pm
package test_eval_scope;
use strict;
use warnings;
my %h = (a=>'b');
sub f1 {
eval 'print %h, "\n"';
# print %h, "\n"; # this would work
# my $dummy = \
在linux中,我有一个名为file_list.txt,的文件列表,其中该列表中的路径还包括一个env变量(在本例中,该文件列表中列出的文件是$HOME/myfile).。
> cat file_list.txt
$HOME/myfile
> ls `cat file_list.txt`
ls: $HOME/myfile: No such file or directory
> ls $HOME/myfile
/home/user/myfile
为什么会这样呢?如何在文件列表中列出的文件上运行操作(如ls、less、vim等)?
我试图将“嵌套”变量的值转换为另一个变量,并/或直接使用该值,如下所示
下面的是一个示例场景,它准确地解释了我被困在什么地方,
$ USER1_DIR=./user1/stuff
$ USER2_DIR=./user2/stuff
$ USER3_DIR=./user3/stuff
#User will be taken as input, for now assuming user is USER1
$ USER="USER1"
$ DIR=${USER}_DIR
$ echo $DIR
>> USER1_DIR
$ DIR=${${USER}_DIR}
我需要一行if语句
if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then do-something &; fi
我想把任务do-something放到do-something &的后台,但是bash抱怨
bash: syntax error near unexpected token `;'
然后我试图用&和\&逃离
if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then do-something \&; fi
但这似