Typeset builtin error


 
Thread Tools Search this Thread
Top Forums UNIX for Dummies Questions & Answers Typeset builtin error
# 1  
Old 07-16-2014
Typeset builtin error

I'm attempting to emulate another users .zshrc file. However, I'm sort of confused on what exactly the -g argument does for the typeset builtin. Here's what he has in his .zshrc file:

Code:
typeset -ga sources
sources+="$ZSH_CONFIG/environment.zsh"
sources+="$ZSH_CONFIG/options.zsh"
sources+="$ZSH_CONFIG/prompt.zsh"
sources+="$ZSH_CONFIG/functions.zsh"
sources+="$ZSH_CONFIG/aliases.zsh"

Note: I've figured out that typeset is now deprecated and is now replaced with the declare builtin.

Also I've tried something similar in another shell script, however the script returns with the following errors:

Code:
declare -g folders

folders +="$HOME/Dropbox"
folders +="$HOME/Desktop"
folders +="$HOME/Downloads"

Output:

Code:
./.new.zsh: line 1: declare: -g: invalid option
declare: usage: declare [-afFirtx] [-p] [name[=value] ...]
./.new.zsh: line 3: folders: command not found
./.new.zsh: line 4: folders: command not found
./.new.zsh: line 5: folders: command not found

Any idea what the -g argument is for? And why is it giving me an error when I attempt to run the script (not the .zshrc file) in terminal?
Code:
  1 declare -g folders
  2
  3 folders +="$HOME/Dropbox"
 folders +="$HOME/Desktop"
  folders +="$HOME/Downloads"

Code:
./.new.zsh: line 1: declare: -g: invalid option
declare: usage: declare [-afFirtx] [-p] [name[=value] ...]
./.new.zsh: line 3: folders: command not found
./.new.zsh: line 4: folders: command not found
./.new.zsh: line 5: folders: command not found

Any idea what the -g argument is for? And why is it giving me an error when I attempt to run the script (not the .zshrc file) in terminal?
Moderator's Comments:
Mod Comment Please use CODE tags (rather than ICODE tags) when marking multi-line sample input, output, and code.

Last edited by Don Cragun; 07-16-2014 at 09:31 PM.. Reason: Add missing CODE tags and change ICODE tags to CODE tags.
# 2  
Old 07-16-2014
Very simply, the -g option is not recognized as a valid option for the typeset command in the shell you're using; so it gives you an error.

What does the man page for the shell that was used to interpret the script that was successfully using typeset -g say the -g option is supposed to do?

Are you using the same shell on the same system where typeset -g was used by the other user? What shell are you using? What OS are you using?

Why is it important for you to copy someone else's code if you don't know what it is trying to do?
This User Gave Thanks to Don Cragun For This Post:
# 3  
Old 07-16-2014
Quote:
Originally Posted by Don Cragun
Very simply, the -g option is not recognized as a valid option for the typeset command in the shell you're using; so it gives you an error.

What does the man page for the shell that was used to interpret the script that was successfully using typeset -g say the -g option is supposed to do?

Are you using the same shell on the same system where typeset -g was used by the other user? What shell are you using? What OS are you using?

Why is it important for you to copy someone else's code if you don't know what it is trying to do?

I am currently running zsh on OSX.

To answer your second question, I have searched the man pages for a solution, as a result, the shell returns, "no manual entry for typeset". The holds true for csh as well.

In brief, my overall goal here is to learn to read and use code from other programmers, perhaps make it better and apply it to something arbitrary.
# 4  
Old 07-17-2014
Quote:
Originally Posted by brandontdr
To answer your second question, I have searched the man pages for a solution, as a result, the shell returns, "no manual entry for typeset". The holds true for csh as well.
It happens that the man pages are not installed. If you do not have root access you cannot even install them. Fortunately there is the internet nowadays and most (practically all) man pages can be searched for and found on the net too. I have tried the obvious words "man zsh typeset" on google and up came (from this page, the first hit:

Quote:
The -g (global) flag is treated specially: it means that any resulting parameter will not be restricted to local scope. Note that this does not necessarily mean that the parameter will be global, as the flag will apply to any existing parameter (even if unset) from an enclosing function. This flag does not affect the parameter after creation, hence it has no effect when listing existing parameters, nor does the flag +g have any effect except in combination with -m (see below).
I suppose you are eager to do the rest of the searching (and reading) yourself. Happy programming.

bakunin
# 5  
Old 07-17-2014
Note also that there is a HUGE difference between the commands:
Code:
sources+="$ZSH_CONFIG/environment.zsh"

and:
Code:
folders +="$HOME/Dropbox"

That additional space completely changes what zsh does. The first command (with no space) adds the expansion of $ZSH_CONFIG/environment.zsh to the array named sources.

The second command (with a space) runs the command folders with the operand +="$HOME/Dropbox".
 
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Builtin alternatives for several commands?

I'm adapting a BASH script to run with an absolute minimal amounts of Cygwin64 files so colleagues using Windows can use it without installing Cygwin. I am down to the following in /bin only (replacing cut with parameter substitution eliminated all needed things in /etc) bash.exe cygattr-1.dll... (5 Replies)
Discussion started by: Michael Stora
5 Replies

2. Shell Programming and Scripting

Typeset

I don't have man typeset entry in unix. what is the use of typeset command and can you give some examples for that. (1 Reply)
Discussion started by: ramkumar15
1 Replies

3. UNIX for Dummies Questions & Answers

Zsh builtin "kill" stopped working

Hi all, I've been using zsh for a while, and was enjoying the builtin "kill" with tab completion. But since I installed "oh-my-zsh" the kill completion has stopped working. I have not edited my new ~/.zshrc file. My ~/.oh-my-zsh/lib/completions.zsh contains the following: zstyle... (0 Replies)
Discussion started by: nickednamed
0 Replies

4. Shell Programming and Scripting

Why use typeset?

Hi, All the scripts we have here use typeset instead of normal variables. They don't have any parameters, they just get declared at the beginning of the scripts like this: typeset var1 var2 var3Could anyone tell me why this is done? I don't see the advantage in this over using normal variables. (1 Reply)
Discussion started by: Subbeh
1 Replies

5. UNIX for Dummies Questions & Answers

Unix Builtin commands

Hi, In unix ls command is found in /bin/ls. Similarly where can I find built-in commands like read, set, unset commands. I found in some couple of websites saying found in bash tool set. In unix everything is considered as a type of file with path. Please can anyone tell me where is that Bash... (5 Replies)
Discussion started by: gwgreen1
5 Replies

6. Shell Programming and Scripting

Read Embedded Newline characters with read (builtin) in KSH93

Hi Guys, Happy New Year to you all! I have a requirement to read an embedded new-line using KSH's read builtin. Here is what I am trying to do: run_sql "select guestid, address, email from guest" | while read id addr email do ## Biz logic goes here done I can take care of any... (6 Replies)
Discussion started by: a_programmer
6 Replies

7. Shell Programming and Scripting

Error while using typeset command

I am having a problem with typeset command: It is behaving differently in different machines. Machine 1: /marc_data/marc_project/owb_marc_adaptor/owb_marc_adaptor_load/bin>echo $0 -bash /marc_data/marc_project/owb_marc_adaptor/owb_marc_adaptor_load/bin>vi fn2.ksh... (6 Replies)
Discussion started by: boopathyvasagam
6 Replies

8. Shell Programming and Scripting

The builtin split function in AWK is too slow

I have a text file that contains 4 million lines, each line contains 2 fields(colon as field separator). as shown: 123:444,555,666,777,888,345 233:5444,555,666,777,888,345 623:454,585,664,773,888,345 ...... Here I have to split the second field(can be up to 40,000 fields) by comma into an... (14 Replies)
Discussion started by: kevintse
14 Replies

9. UNIX for Dummies Questions & Answers

Typeset

Hi, Can any one please explain me the use of 'typeset' in shell scripting? I donot under stand the use and advantages of using typeset. In one of our script, it is written like typeset VERBOSE NO_UPDATE typeset LOAD_SYBASE_TABLES I donot understand what actually these lines do. As per my... (2 Replies)
Discussion started by: siba.s.nayak
2 Replies

10. Shell Programming and Scripting

typeset

Can anyone show me a simple practical usage of typeset. (1 Reply)
Discussion started by: balaji_prk
1 Replies
Login or Register to Ask a Question