【linux – 为什么变量的地址在运行之间不断变化】教程文章相关的互联网学习教程文章

linux – 如果后跟管道(bash bug?),Bash变量默认不起作用【代码】

我刚刚在bash中发现了一个我不理解的奇怪行为.表达方式${variable:=default}如果尚未设置变量,则将变量设置为默认值.请考虑以下示例:#!/bin/bash file ${foo:=$1} echo "foo >$foo<" file ${bar:=$1} | cat echo "bar >$bar<"输出是:$./test myfile.txt myfile.txt: ASCII text foo >myfile.txt< myfile.txt: ASCII text bar ><您会注意到变量foo的值为$1,但变量bar不是,即使其默认结果显示在file命令中. 如果你从第4行将无害管道...

linux – 如何使用大括号扩展变量【代码】

参见英文答案 > Brace expansion with variable? 6个我有四个文件:1.txt 2.txt 3.txt 4.txt在linux shell中,我可以使用:ls {1..4} .txt列出所有四个文件但如果我设置两个变量:var1 = 1和var2 = 4,如何列出这四个文件?那是:var1=1 var2=4 ls {$var1..$var2}.txt # error什么是正确的代码?解决方法:使用brace expansion的序列表达形式({< numFrom> ..< numTo>})的变量仅适用于ksh和zs...

小猿圈之Linux shell变量

学习linux的朋友shell不一定要了解多深,但是写linux脚本的朋友那必须对linux shell了如指掌,小猿圈老师从shell基础说起,让我们一起看一下shell变量都有哪些。 1、本地变量 --本地变量是在用户现有的shell生命周期的脚本中使用 --本地变量详解:用户通过终端登录服务器,服务器会创建一个会话期并且启动一个shell程序,用户每登录一次, 就会启动一个shell,所以在一个会话期里可能会启动多个shell程序 当用户在shell程序中定...

linux – 为什么我的sed命令在使用变量时失败了?【代码】

使用bash,我正在尝试为日期插入变量并在日志文件中搜索该日期,然后将输出发送到文件.如果我像这样对日期进行硬编码它会起作用:sed -n '/Nov 22, 2010/,$p' $file >$log_file但如果我这样做就失败了:date="Nov 22, 2010" sed -n '/$date/,$p' $file >$log_file我得到的错误是:sed:1:“/ 2010年11月22日/,”:预期的上下文地址谢谢您的帮助.解决方法:在shell脚本中,单引号和双引号之间存在差异.单引号内的变量不会扩展(与双引号...

linux – Bash创建变量然后为其赋值【代码】

对于这个问题,我有两个值,curdir和curlevel,它们在我的脚本中发生了变化.我想知道是否可以创建变量然后使用该值作为另一个值的名称.例如temp="dir_${curdir}_${curlevel}" $temp=$name_of_directory **<----Is there a legitimate way to do this?**所以如果最初curdir = 1并且curlevel = 0那么$(温度)= directory_one等于dir_1_0=directory_one然后如果curdir = 2并且curlevel = 4,我可以重置temp然后拥有$(temp)=another_direct...

linux – 在bash中,我应该在函数中取消设置局部变量吗?【代码】

我应该在bash脚本中的函数末尾取消设置我的局部变量吗?例如,以下功能:square() {local var=$1(( var = var * var ))echo $var## should I unset $var here?? }只是对最佳实践感到好奇,谢谢!解决方法:如果您没有使用本地命令,那么您可能希望在离开函数之前取消设置变量以避免污染全局命名空间.square () {var=$1 # var is global, and could be used after square returns(( var = var * var ))echo $varunset var # Remove ...

linux – 从变量中删除空格【代码】

我想从Linux Shell中的变量中删除空格并在终端上回显它.以下是我的代码:echo "Enter your full name" read fname $fname | sed "s/ //g"当我运行代码时,它显示未找到命令.解决方法:您不能只调用变量(将其视为字符串值容器).你需要回应它:echo $fname | sed "s/ //g"

linux – 在Bash中将多个用户输入添加到一个变量中【代码】

我是unix bash脚本的新手,需要知道这是否可行.我想多次询问用户输入,然后将输入存储到一个变量中.userinputs= #nothing at the startread string <code to add $string to $userinputs> read string <code to add $string to $userinputs> #this should add this input along with the other input因此,如果用户在第一次询问时输入“abc”,则会在$userinputs中添加“abc” 然后当再次询问输入并且用户输入“123”时,脚本应该将其...

Linux脚本学习指南--9内置的shell变量和退出状态

特殊变量$*,$@ 一次表示所有的命令行参数。 $* 将所有命令行参数视为单个字符串 $@将所有的命令行参数视为单独的个体,不加双引号之前,两者相同,加了双引号 $*表示一个字符串 # 目前进程的参数个数 @ 传递给当前的命令行参数 * 当前进程的命令行参数 - 连字号 $ shell的进程编号 IFS 内部字段分割器,一般为ta p 或换行 LANG 当前local的默认名称 PPID 父进程的进程编...

管理 Linux 环境变量【代码】

在 Linux 系统上的用户账户配置以多种方法简化了系统的使用。你可以运行命令,而不需要知道它们的位置。你可以重新使用先前运行的命令,而不用发愁系统是如何追踪到它们的。你可以查看你的电子邮件,查看手册页,并容易地回到你的家目录,而不用管你在文件系统中身在何方。并且,当需要的时候,你可以调整你的账户设置,以便其更符合你喜欢的方式。 Linux 环境设置来自一系列的文件:一些是系统范围(意味着它们影响所有用户账户)...

linux – BASH – 找不到什么$?特殊变量意味着【代码】

谁知道$?在BASH意味着什么? 我必须编写一个脚本,如果它崩溃或被杀死,它将重启一个进程.所以我发现这是从:RESTART="/etc/init.d/apache2 restart" if [ $? -ne 0 ] # if apache not running then# restart apache$RESTART fi我做了搜索,但是$?我不知道. 我不确定上面的脚本是否是最好的方法,我假设$RESTART将挂起,直到进程被终止或死亡?如果没有,我会假设在那里会有某种类型的sleep()调用,所以这个东西不会以每小时1000英里的速...

linux – 在调试perl代码期间修改变量的值【代码】

我正在使用“perl -d”开关在SuSe Linux上调试perl程序. 在调试时,程序报告XYZ变量未设置 如何在调试器中设置XYZ的值? 我尝试在调试器内部进行操作但不能正常工作.set XYZ=ABC my $XYZ=ABC setenv XYZ ABC我对此做了一些谷歌.但找不到我想要的东西.解决方法:调试控制台采用Perl表达式,因此如果它是一个字符串,则需要引用该值. 您必须将程序移动到抛出错误的行之前(查看断点,它是调试器中的b< line>)然后设置值.> $XYZ='ABC'这是一...

linux – 有没有办法使用变量来获取指定的参数?【代码】

function f(){ i=1; echo "${!i}" ; } f a b输出:afunction f(){ i=1; echo "${!((i+1))}" ; } f a b输出:bash:${!((i 1))}:错误替换,我想要的输出是b 什么是正确的语法?解决方法:补充codeforester’s helpful answer: 如果您只需要访问函数中的位置参数,则可以使用数组语法来提取感兴趣的参数;数组切片语法支持算术表达式:> function f(){ i=1; echo "${@: i+1 : 1}" ; }; f a b b

linux – 一行设置环境变量和执行命令,在sh和bash中得到了不同的结果【代码】

我想弄明白,oneliner怎么样var=value command实际上是sh.我希望变量var可以传递给命令环境,但在当前环境中不应该存在(请不要在最后省略免责声明!)首先,让我们在bash中尝试一下#bash $var= #just to be sure it's empty $var=value echo something . something $echo "$var" .$var=value set something $echo "$var" .目前,它按预期工作.但是当我们去sh并重新输入相同的输入时,它会是这样的:#sh $var= $var=value echo somet...

php – 在Linux上的Zend config ini文件中包含大括号内的变量【代码】

我试图通过用大括号括起来在.ini文件设置中包含一个变量,并且Zend抱怨它无法在Linux上正确解析它.它可以在Windows上正常工作:welcome_message = Welcome, {0}.这是Linux上抛出的错误:: Uncaught exception 'Zend_Config_Exception' with message 'Error parsing /var/www/html/portal/application/configs/language/messages.ini on line 10 ' in /usr/local/zend/share/ZendFramework/library/Zend/Config/Ini.php:181 Stack t...